zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    行为科学统计第一章知识点总结
    JVM垃圾回收参数说明整理
    RestTemplate
    SparkContext源码阅读
    Spark RDD类源码阅读
    Scala学习笔记
    JAVA虚拟机类型转换学习
    工程开发实用类与方法总结(未完)
    JAVA 几种引用类型学习
    JAVA虚拟机垃圾回收算法原理
  • 原文地址:https://www.cnblogs.com/zjhblogs/p/5599991.html
Copyright © 2011-2022 走看看