有一哥们是搞山寨货的,什么流行就搞什么。自己有个厂子,前些时间服装挣钱,就生产衣服,如今搞手机挣钱,搞手机,这哥们非常聪明,就换了个产品,工人,厂房都不变。他是怎么做到的?用类图来模拟一下:
由类图能够看出这哥现有两家公司,一个搞房地产,一个搞山寨货(phone),房地产是长久渠道,山寨随时可能变更。
用PHP来实现:
<?php abstract class Corp { private $product; public function __construct( Product $product ) { $this->product = $product; } // protected abstract function produce(); // protected abstract function sell(); public function makeMoney() { $this->product->beProducted(); $this->product->beSelled(); } } class HouseCorp extends Corp{ public function __construct( House $house ) { parent::__construct( $house ); } public function makeMoney() { parent::makeMoney(); echo "房地产公司挣大钱了。。。\n"; } } class ShanZhaiCorp extends Corp{ public function makeMoney() { parent::makeMoney(); echo "挣大钱了。。。\n"; } } abstract class Product { public abstract function beProducted(); public abstract function beSelled(); } class House extends Product{ public function beProducted() { echo "房子生产出来是这样\n"; } public function beSelled() { echo "生产出来的房子被卖出去了\n"; } } class Phone extends Product{ public function beProducted() { echo "手机出来是这样\n"; } public function beSelled() { echo "生产出来的手机被卖出去了\n"; } } $house = new House(); $houseCorp = new HouseCorp($house); $houseCorp->makeMoney(); $shanzhaiCorp = new ShanZhaiCorp(new Phone()); $shanzhaiCorp->makeMoney(); 执行结果: 房子生产出来是这样 生产出来的房子被卖出去了 房地产公司挣大钱了。。。 手机出来是这样 生产出来的手机被卖出去了 挣大钱了。。。