开发者社区> 问答> 正文

[@倚贤][¥20]依赖注入和工程模式之间有什么不同?

问题来自Java技术沙龙的李博
Java线下沙龙报名链接:https://yq.aliyun.com/activity/796

展开
收起
李博 bluemind 2018-12-14 16:49:23 2175 0
1 条回答
写回答
取消 提交回答
  • 依赖注入的类是这样的:
    class Obj : IObj{
    private IPropObj mPropObj=null;
    //注入--设置值注入方式
    publc void SetPropObj(IPropObj propObj){

     mPropObj=propObj;

    }
    }

    工厂模式的类是这样的:
    class Obj : IObj{
    private IPropObj mPropObj=null;

    //构造函数
    public Obj(){

    mPropObj=Factory.CreatObj<IPropObj>();

    }
    }
    依赖注入的框架创建对象时(创建Obj时),会自动找到类的注入法SetPropObj(或者类构造函数中接口定义参数--构造注入法),创建对应的对象(IPropObj的实现类),这样你的程序中任何地方都找不到创建IPropObj的地方,只会在框架的配置文件中找到IPropObj是用哪个实现类--你想改用另一个实现类,就要在配置文件中修改。
    工厂模式下,那个Factory是工厂框架的对象,如果你要改换IPropObj的实现类,那个就应该改工厂的配置文件中IPropObj的定义,或者框架指定的定义地方(你在那里可以看到IPropObj是怎样创建的)。

    2019-07-17 23:21:21
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring框架入门 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载