IList与List实质是接口与类的区别
究竟是定义接口还是定义类,从设计的角度讲不一定是软件的概念,而是语言的概念。
所以当面向接口编程的时候,往往会落在面向对象的思维中。不过面向对象的思维已经可以覆盖面向接口的。
但是为什么要有面向接口呢?
这就是:当我们从比较原始的角度看面向对象,更多的是对这个对象的定义多用在:名词上。而名词是一个描述实体的名词,那么是最容易被面向对象所理解的。
可是,当随着类定义越来越复杂,发现再是说一个名词,而是在说一个形容词,用形容的方式来描述一个物体。那么这个时候,接口就有一点充当这个任务的味道了,但这是接口这个名词的“异化”结果。
所以,名词一旦和动作,形容两个有复杂描述后,面向对象,就不能是面向对象,而面向接口也一样难以表达清楚,这样就有一种新的名称,叫面向服务。
当然,我相信从软件语言的理论上应该具备了完整的描述,但对于啃技术书的开发人员,往往在面向对象的里面思考着面向服务的问题,导致了,对定义类,接口有很多的疑惑。
难道面向服务就完整了吗?面向对象,面向描述,面向动作,面向服务,面向架构,面向应用,面向人。这样对设计一个复杂功能的软件应用就容易设计了。
目前所做的项目有点类似:不再是一个个软件,一个个系统,是一个由软件系统组成的生态系统,每一个系统都有它存在的意义,每个系统之间互相通信。那么随着数据不断的整合,梳理。逐渐的人机交互的方式多起来,数据分析维度也多起来。软件给一个公司带来的变革就非常的明显了。(不要给我讲感觉,给我看数据,我相信很多人喜欢这句话。)
那么面向对象编程你还会纠结在具体怎么使用方法没?我觉得可以吧List,Object,从新定义一下。不要用在抽象名词上,不要用在描述性名称上,这样使得“人”更容易被理解。而不再只是那些少数有面向对象思维的人才能理解的东西。