php-设计模式-外观模式

class CPU {
    public function freeze() {
        echo "Freeze the CPU\n";
    }
    public function jump($address) {
        echo "Jump to $address\n";
    }
    public function execute() {
        echo "Execute\n";
    }
}
class Memory {
    public function load($address, $data) {
        echo "Loading address $address with data: $data\n";
    }
}
class Disk {
    public function read($sector, $size) {
        return "data from sector $sector ($size)";
    }
}
// Facade
class Computer {
    const BOOT_ADDRESS = 0;
    const BOOT_SECTOR = 1;
    const SECTOR_SIZE = 16;
    protected $cpu;
    protected $mem;
    protected $hd;

    public function __construct(CPU $cpu, Memory $mem, Disk $hd) {
        $this->cpu = $cpu;
        $this->mem = $mem;
        $this->hd  = $hd;
    }

    public function startComputer() {
        $this->cpu->freeze();
        $this->mem->load(self::BOOT_ADDRESS, $this->hd->read(self::BOOT_SECTOR, self::SECTOR_SIZE));
        $this->cpu->jump(self::BOOT_ADDRESS);
        $this->cpu->execute();
    }
}
// Usage example
$pc = new Computer(new CPU, new Memory, new Disk);
$pc->startComputer();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值