要商量的标题:IOC是何许?它解决了如何?大家的品种中为啥要用IOC?反射对质量真的影响很大呢?不用反射,何人意见最大?

来呢,开首说难点

1,IOC是怎么样?不用说什么样容器,框架,大白话其实IOC就是将部分接口与它的各类完成的类名配置在一个文件中,可以是XML,也得以是.config配置文件中,然后在程序“运行时”去依照布署的新闻去动态拿到(resolved)那么些目的,然后程序中就足以应用那么些目标了,所IOC就是用来确立目标的。

2,它解决了什么样?一个接口,有二种完结,如sql完成,oracle达成,access落成等,那当前条件下用哪一类艺术来拓展落到实处呢,那时可以由IOC来落成它。

 

 1 // 统一规范
 2 public interface IRepository<TEntity> where TEntity : class
 3 {
 4   void Insert(TEntity entity);
 5 }
 6 
 7 // sql 实现
 8 public class SqlRepository<TEntity> : IRepository<TEntity>
 9 {
10   public void Insert(TEntity entity)
11   {
12     ...
13   }
14 }
15 
16 // Access实现
17 public class AccessRepository<TEntity> : IRepository<TEntity>
18 {
19   public void Insert(TEntity entity)
20   {
21     ...
22   }
23 }

 

3,大家的档次中为啥要用IOC?在档次中用IOC的目标很简短,就是让程序松耦合,说的略微抽象,看一个小代码

1 class UserService
2 {
3     var userRepository=new UserRepository();
4 }

我们可以观望userRepository对象它借助于UserRepository的落实,当我们须要转移userRepository的落到实处形式时,很勤奋,只好去代码中改变,那样造成程序的增加性很低,那是连串中引入IOC的原因,也就是说:“当程序模块有多样落到实处形式时,可以引用IOC情势来创制对象的实例”。

4,反射对品质真的影响很大呢?那一个标题有成千成万私有做了重重次尝试,反射和毫无反射的程序,差别糟糕确定,因为它与数量复杂度还有涉及,一般数据量小时,可能几十倍,数据量时,可能过多倍(反射在底层达成时),大家可以从微软的原码中观望,它在有些时候利用了成百上千反光,是的,我自身不反对使用反射,因为自己是一个面向对象的忠贞不二信仰者。

5,不用反射,何人意见最大?那个标题很风趣,什么人意见最大?我看因为是“面向对象”意见最大,因为大家不可以去想像一个从未反射的次第是何许面向对象的,当一个需求被改变时,就要去修改你的程序代码,那对于程序员是一种切肤之痛,也违反了面向对象的基准,我想,即然C#是一个截然面向对象的言语,这大家在写程序时,是还是不是应该面向对象越来越多一些,而不是那么一点点的质量,而且那种属性的浪费自己觉得是到位值得的。

信仰C#,信仰面向对象

 

谢谢各位!

 

XML, 

 

 

相关文章

网站地图xml地图