标签:职责 ast 抽象工厂 follow 过滤 模式 iat singleton strategy
原文地址:http://www.work100.net/training/monolithic-architecture-design-patterns.html序号 | 文内章节 | 视频 |
---|---|---|
1 | 概述 | - |
2 | 设计原则 | - |
请参照如上章节导航
进行阅读
设计模式(Design pattern
)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。
设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。
这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
这些模式或者可以简化代码,或者可以使代码逻辑看起来清晰,或者对功能扩展很方便。
设计模式按照使用场景可以分为三大类
:
这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。
这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。
这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。
行为模式不仅表达了对象和类,还表达了他们之间的交互,涉及到了对象和算法的分配。
为了便于记忆,我们可以使用一个口诀来记忆面向对象设计原则:开口合里最单依
开闭原则的意思是:对扩展开放,对修改关闭。
在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。
简言之,是为了使程序的扩展性好,易于维护和升级。
想要达到这样的效果,我们需要使用接口和抽象类,这是面向对象设计(OOD)的基石,也是最重要的原则。
一个类对另外一个类的依赖是建立在最小的接口上。
使用多个专门的接口比使用单一的总接口要好。根据客户需要的不同,而为不同的客户端提供不同的服务是一种应当得到鼓励的做法。
就像"看人下菜"一样,要看客人是谁,再提供不同档次的饭菜。
胖接口会导致他们的客户程序之间产生不正常的并且有害的耦合关系。
当一个客户程序要求该胖接口进行一个改动时,会影响到所有其他的客户程序。
因此客户程序应该仅仅依赖他们实际需要调用的方法。
在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分。
新的对象通过这些向对象的委派达到复用已有功能的目的。
这个设计原则有另一个简短的表述:要尽量使用合成/聚合,尽量不要使用继承。
由 Barbar Liskov (芭芭拉.里氏) 提出,是继承复用的基石。
所有引用基类的地方必须透明的使用其子类的对象。只要父类能出现的地方子类也可以出现,而且替换为子类不会产生任何错误或异常,但是反过来就不行,有子类出现的地方,父类未必就能适应。
一个对象应当对其他对象有尽可能少的了解。
没有任何一个其他的 OO
设计原则象迪米特法则这样有如此之多的表述方式,如下几种:
就是说,如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,如果其中的一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
就一个类而言,应该仅有一个引起它变化的原因,如果你能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。
应该把多于的指责分离出去,分别再创建一些类来完成每一个职责。
这个原则是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。
要求客户端依赖于抽象耦合:
采用依赖倒置原则可以减少类间的耦合性,提高系统的稳定,降低并行开发引起的风险,提高代码的可读性和可维护性。
如果对课程内容感兴趣,可以扫码关注我们的
公众号
或QQ群
,及时关注我们的课程更新
标签:职责 ast 抽象工厂 follow 过滤 模式 iat singleton strategy
原文地址:https://blog.51cto.com/14735583/2476844