php 简单说明IoC (php 实例+注释)

简单说明IoC

<?php

//Ioc ————  设计方式
//控制反转 Inversion of Control
//依赖关系的转移
//依赖抽象而非实践

//用于解决高层应用依赖 底层组件,软件移植性差(修改困难)的问题
//实例:
/*
class soft{
    private $writer;
    
    public function __construct(){
        $this->writer = new FloppyWriter;
    }
    public function save(){
        $this->writer->SaveToFloppy();
    }
}
//造成高层对底层的依赖__使程序无法重用 不好的设计
class FloppyWriter{
    public function saveToFloppy(){
        echo __METHOD__;
    }
}

$soft = new soft;
$soft->save()
*/
##########################改进##########################
//定义一个接口约定
interface IDeviceWriter
{
    public function saveToDevice();
}
class soft{
    private $_writer;
    
    public function setWriter($name){
        $this->_writer = $name;
    }
    public function save(){
        $this->_writer->saveToDevice();
    }
}
//软盘储存
class FoppyWriter implements IDeviceWriter{
    public function saveToDevice(){
        echo __METHOD__;
    }
}
//USB储存
class USBWriter implements IDeviceWriter{
    public function saveToDevice(){
        echo __METHOD__;
    }
}
//将高层依赖 转移到 "依赖注入"
$soft= new soft();
$writer=  new USBWriter;
$soft->setWriter($writer);
$soft->save();

 

转载于:https://www.cnblogs.com/zjhblogs/p/5599991.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值