设计模式之6大原则
来源:互联网 发布:淘宝卖家怎么刷信誉 编辑:程序博客网 时间:2024/05/01 19:44
设计模式之6大原则
一、设计模式6大原则
名称
解释
0、单一职责原则(SRP)
就一个类而言,应该仅有一个引起它变化的原因。
一、"开放-封闭"原则(OCP)
在软件设计模式中,这种不能修改,但可以扩展的思想也是最重要的一种设计原则。即软件实体(类、模板、函数等等)应该可以扩展,但是不可修改。
【通俗】:设计的时候,时刻考虑,尽量让这个类是足够好,写好了就不要去修改了,如果新需求来,我们增加一些类就完事了,原来的代码能不动则不动。
二、里氏代换原则(LSP)
1.一个软件实体如果使用的是一个父类的话,那么一定适用于该子类,而且他觉察不出父类对象和子类对象的区别。也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化。
【一句话】:子类型必须能够替换掉他们的父类型。
三、依赖倒置原则(DIP)
1.高层模块不应该依赖于底层模块。两个都应该依赖抽象。2.抽象不应该依赖于细节,细节依赖于抽象(
【白话】:针对接口编程,不要针对实现编程。
四、接口隔离原则(ISP)
1.使用多个专门的接口比使用单一的总接口总要好。换而言之,从一个客户类的角度来讲:一个类对另外一个类的依赖性应当是建立在最小接口上的。
2.过于臃肿的接口是对接口的污染。不应该强迫客户依赖于它们不用的方法。
五、合成/聚合复用原则(CARP)
尽量使用合成/聚合,尽量不要使用类继承。
【聚合】:表示一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。
【合成】:一种强的拥有关系,提现了严格的部分和整体的关系,部分和整体的生存周期一致。
六、迪米特法则(LoD)
最少知识原则
强调类之间的松耦合。即:如果两个类不必彼此直接通信,那么着两个类就不应当发送直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
___大部分内容摘自《大话设计模式》
1.楼主?题目不是6个设计模式吗?怎么列举了7个?
答:不同的书上列举的不太一样,单一模式原则和接口隔离原则多数都提了一个。本文都列举上,待深入探究后给出详细分析。
2.接口隔离原则与单一职责原则不是相同的吗?
答:错,接口隔离原则与单一职责的审视角度是不相同的。
单一职责要求的是类和接口职责单一,注重的是职责,这是业务逻辑上的划分;
而接口隔离原则要求接口的方法尽量少。例如一个接口的职责可能包含10个方法,这10个方法都放在一个接口中,并且提供给多个模块访问,各个模块按照规定的权限来访问,在系统外通过文档约束“不使用的方法不要访问”,按照单一职责原则是允许的,按照接口隔离原则是不允许的,因为它要求“尽量使用多个专门的接口”,专门的接口指什么?就是指提供给每个模块都应该是单一接口,提供给几个模块就应该有几个接口,而不是建立一个庞大的臃肿的接口,容纳所有的客户端访问。
- 设计模式之6大设计原则
- 设计模式之6大设计原则
- 设计模式之6大设计原则
- 设计模式之6大原则
- 设计模式之6大原则总结
- 设计模式之6大原则
- 设计模式之6大原则
- 设计模式之6大原则
- 设计模式之6大原则
- 设计模式之大原则
- 设计模式之6大原则(6)开闭原则
- 设计模式6大原则之-单一职责原则
- 设计模式6大原则之里氏替换原则
- 设计模式6大原则之依赖倒置原则
- 设计模式6大原则之接口隔离原则
- 设计模式之6大原则(1)-单一职责原则
- 设计模式之6大原则(2)-里氏替换原则
- 设计模式之6大原则(3)-依赖倒置原则
- 电影里的情节
- 第七周任务-星号图
- vmware中的bridge、nat、host-only的区别 .
- 软件思想之--软件学习之根本
- 启动数据库、、停止数据库、oracle、启动svn、svn无法删除问题
- 设计模式之6大原则
- 彭真诞辰110周年:曾指导林彪江青案审判成功-彭真-诞辰-周年纪念
- 对九个超级程序员的采访
- 逆波兰表示法
- GRUB2的配置方法【涉及/etc/default/grub,/etc/grub.d/*】
- 设计模式之23种模式
- Directx SDK9.0b 中的程序在VS2005中编译中的一些问题
- 各地少先队集中开展红领巾心向党主题队日-少先队-主题队日-红领巾心向党
- Android中findViewById()获取EditText 空指针问题