设计模式原则

指导思想

1. 可维护性(Maintainability)
修改功能时,改动的地方越少,改动越简单(越不伤筋动骨),可维护性越好。

2. 可复用性(Resuability)
代码可以被重复使用;实现通用的类库。

3. 可扩展性(Extensibility/Scalability)
添加功能无需修改原来代码(使用多态、基于抽象类和接口编程)。

4. 灵活性(Flexibility/Mobility/Adaptability)
代码接口可以灵活调用。

设计原则

1. 单一职责原则(Single Responsibility Principle)

  • 一个类别太大、别什么都实现、按适当的粒度进行划分,负责单一的职责。
  • 高内聚、低耦合。

2. 开闭原则(Open-Closed Principle)

  • 对扩展开放,对修改关闭。尽量不修改原来代码的情况下进行扩展。
  • 抽象化,多态是开闭原则的关键。

3. 里氏替换原则(Lisvoc Substitution Principle)

  • 所有使用父类的地方,必须能够透明的使用子类对象。

解释:Man类继承自Human类,如果Human human = new Human(),能够改成Human man = new Man的话,即符合该原则。即子类对象能够完全代替父类对象,接口语言没有变,具有同样的行为和属性。

4. 依赖倒置原则(Dependency Inversion Principle)

  • 依赖于抽象(接口、抽象类),面向接口而不是依赖具体类。
  • 面向抽象编程

5. 接口隔离原则(Interface Segregation Principle)

  • 每一个接口应该承担独立的角色,不敢干自己职责以外的事儿。

解释:如果有两个接口Runnable和Flyable,不应该将两个接口合成一个接口。这样可以避免子类实现不需要实现的方法。
当需要对客户提供接口的时候,提倡只暴露需要的最小接口。

6. 迪米特法则(Law of Demeter)

  • 尽量不要和“陌生人”说话,以此和“陌生人”的耦合度变低。

解释:对于一个对象,非“陌生人”包括以下几种:
当前对象,this或super对象;
形参,以参数形式传入到当前对象方法中的对象;
当前对象的成员变量、成员对象(包括成员集合和集合元素);
当前对象所创建的对象。

设计原则一句话小结!!!

  • OCP:总纲,对扩展开放,对修改关闭。
  • SRP:类的职责要单一。
  • LSP:子类可以透明替换父类。
  • DIP:面向接口编程。
  • ISP:接口的职责要单一。
  • LoD:合理使用关联关系,降低耦合。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值