设计模式:7大原则

1. 单一职责原则(Single Responsibility Principle, SRP):对于一个类而言,应该只有一个引起它变化的原因。

2. 开闭原则(Open-Closed Principle,OCP): 一个软件实体应当对扩展开放,对修改关闭。既软件实体应尽量不去修改它原有的代码的情况下进行修改。抽象化是关键。

3. 里氏代换原则(Liskov Substitution Principle,LSP):所有引用父类(基类)的地方必须能够透明的使用其子类对象。

4. 依赖倒转原则(Dependency Inversion Principle,DIP):针对接口编程,而不是针对实现编程。

如果说开闭原则是面向对象设计的目标的话,那么依赖倒转就是面向对象设计的主要实现机制之一,它是系统抽象化的具体实现。它的定义是,抽象不应该依赖于细节,细节应当依赖于抽象。

5. 接口隔离原则(Interface Segregation Principle,ISP):使用多个专门的接口,而不是使用单一的总接口,既客户端不应该依赖那些它不需要的接口。

6. 合成复用原则(Composite Reuse Principle,CRP):尽量使用对象组合,而不是继承来达到复用的功能的目的。

     合成复用原则就是在一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用一些已有的的对象,使之成为一个新的对象的一部分。简言之,复用时要尽量使用组合/聚合关系(关联关系),少用继承。

    一般而言,如果两个类之间是“Has-A”的关系应使用组合或聚合,如果是“Is-A”关系可使用继承。

    "Is-A"是严格的分类学意义上的定义,意思是一个类是另一个类的"一种";

    而"Has-A"则不同,它表示某一个角色具有某一项责任。

7. 迪米特法则(Low of Demeter,LoD):一个软件实体应当尽可能少地与其他实体发生相互作用。

如果一个系统符合迪米特法则,

那么当其中某一个模块发生修改时,就会尽量少地影响其他模块,扩展会相对容易,这是对软件实体之间通信的限制,

迪米特法则要求限制软件实体之间通信的宽度和深度。

迪米特法则可降低系统的耦合度,使类与类之间保持松散的耦合关系。

迪米特法则还有几种定义形式,包括:不要和“陌生人”说话、只与你的直接朋友通信等,在迪米特法则中,

对于一个对象,其朋友包括以下几类:
(1) 当前对象本身(this);
(2) 以参数形式传入到当前对象方法中的对象;
(3) 当前对象的成员对象;
(4) 如果当前对象的成员对象是一个集合,那么集合中的元素也都是朋友;
(5) 当前对象所创建的对象。
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值