zoukankan      html  css  js  c++  java
  • DI是什么?DI()->notorm = new PhalApi_DB_NotORM(DI()->config->get('dbs'), $debug);

    DI()->notorm = new PhalApi_DB_NotORM(DI()->config->get('dbs'), $debug);

    经常看到这个DI,却一直没问道老师,这是什么。。

    今天看到一个解释

    DI
    依赖注入 Dependency Injection
    
    不必自己在代码中维护对象的依赖
    
    容器自动根据配置,将依赖注入指定对象

    依赖注入。

    术语介绍
    ——引用《Spring 2.0 技术手册》林信良
    
    非侵入性 No intrusive
    框架的目标之一是非侵入性(No intrusive)
    
    组件可以直接拿到另一个应用或框架之中使用
    
    增加组件的可重用性(Reusability)
    
    容器(Container)
    管理对象的生成、资源取得、销毁等生命周期
    
    建立对象与对象之间的依赖关系
    
    启动容器后,所有对象直接取用,不用编写任何一行代码来产生对象,或是建立对象之间的依赖关系。
    
    IoC
    控制反转 Inversion of Control
    
    依赖关系的转移
    
    依赖抽象而非实践
    
    DI
    依赖注入 Dependency Injection
    
    不必自己在代码中维护对象的依赖
    
    容器自动根据配置,将依赖注入指定对象
    
    AOP
    Aspect-oriented programming
    
    面向方面编程
    
    无需修改任何一行程序代码,将功能加入至原先的应用程序中,也可以在不修改任何程序的情况下移除。
    
    分层
    表现层:提供服务,显示信息。
    领域层:逻辑,系统中真正的核心。
    数据源层:与数据库、消息系统、事务管理器及其它软件包通信。
    ——《企业应用架构模式》P.14
  • 相关阅读:
    hdu 1535 Invitation Cards(spfa)
    hdu 1317 XYZZY
    hdu 1245 Saving James Bond
    hdu 1546 Idiomatic Phrases Game
    hdu 1217 Arbitrage(佛洛依德)
    hdu 1599 find the mincost route(无向图的最小环)
    poj1579
    poj1905
    poj1384
    poj3624
  • 原文地址:https://www.cnblogs.com/gzpu/p/14832683.html
Copyright © 2011-2022 走看看