php适配器模式

class Baoguan extends IController{    
    //全速通订单报关
    public function quansutongbaoguan(){
                
    }
    //易通订单报关
    public function order(){
        
    }
}

这是原先的代码,就是根据过来的订单号对订单进行报关操作。
现在有了新的要求,需要在报关前(不管是全速通报关还是易通报关)对数据进行判断然后进行某些操作。
技术经理说为了松耦合,叫我用适配器模式来弄。适配器模式原理我懂,但是到实际的工作中我不知道用怎么操作,有懂的帮我说下具体要怎么写这个适配器。

阅读 2.4k
1 个回答

以前你不是有报关的实体类么

//定义一个报关的接口
interface BaoGuan
{
     public function baoguanOperation();// 定义一个报关的方法
}

//定义实现全速通报关的实体类
class QuanSuTong implements BaoGuan
{
    public function baoguanOperation()
    {
        // 具体的报关方式...
    };
}

//定义实现易通报关的实体类
class YiTong implements BaoGuan
{
    public function baoguanOperation()
    {
        // 具体的报关方式...
    };
}

现在增加了一个数据判断的实体类

//实现一个具体的判断类

class Judge
{
    //具体的一堆判断逻辑...
}

不是要松耦合么,意思就是新增加的判断实体类的具体判断实现,我们单独放在这个实体类里,再去实现一个适配器类把两者松耦合在一起就可以了。

class AdapterBaoGuan implemnt BaoGuan
{
    private $Judge;
    
    public function baoguanOperation()
    {
        // 判断
        $judge = new Judge();
        $judge->... // 一系列判断
        // 具体的报关方式...
    };
}

以上是我的理解,望指正,哈哈

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进