zoukankan      html  css  js  c++  java
  • php 依赖注入的实现

    当A类需要依赖于B类,也就是说需要在A类中实例化B类的对象来使用时候,如果B类中的功能发生改变,也会导致A类中使用B类的地方也要跟着修改,导致A类与B类高耦合。这个时候解决方式是,A类应该去依赖B类的接口,把具体的类的实例化交给外部。

    <?php
     
    /**
     * 为了约束我们先定义一个消息接口
     * Interface Message
     */
    interface  Message{
     
      public function seed();
    }
     
    /**
     * 有一个发送邮件的类
     * Class SeedEmail
     */
    class SeedEmail implements Message
    {
     
        public function seed()
        {
     
            return  'seed email';
     
            // TODO: Implement seed() method.
        }
     
    }
     
    /** 
     *新增一个发送短信的类
     * Class SeedSMS
     */
    class SeedSMS implements Message
    {
        public function seed()
        {
            return 'seed sms';
            // TODO: Implement seed() method.
        }
     
     
    }
    /*
     * 订单产生的时候 需要发送消息
     */
    class Order{
     
        protected $messager = '';
     
        function __construct(Message $message)
        {
            $this->messager = $message;
     
        }
        public function seed_msg()
        {
            return $this->messager->seed();
        }
    }
    //我们需要发送邮件的时候
    $message = new SeedEmail();
    //将邮件发送对象作为参数传递给Order
    $Order = new Order($message);
    $Order->seed_msg();
     
     
    //我们需要发送短信的时候
    $message = new SeedSMS();
    $Order = new Order($message);
    $Order->seed_msg();
  • 相关阅读:
    关于javascript获取页面高度宽度
    regexp_substr在oracle9i的替换方案
    iOS-数据存储
    iOS-导入XMPP框架
    iOS-WWDC
    iOS-在Xcode中使用Git进行源码版本控制(转)
    iOS-AFN
    iOS-网络基础
    iOS-UIDynamic
    iOS-动画
  • 原文地址:https://www.cnblogs.com/yszr/p/10686306.html
Copyright © 2011-2022 走看看