当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();
总结
以上是内存溢出为你收集整理的php 依赖注入的实现全部内容,希望文章能够帮你解决php 依赖注入的实现所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)