目录
(3)可扩展性Extensibility/Scalability
(4)灵活性flexibility/mobility/adaptability
(1)单一职责原则Single Responsibility Principle
(3)里氏替换原则Liscov Substitution Principle
(4)依赖倒置原则Dependency Inversion Principle
(5)接口隔离原则Interface Segregation Principle
1、软件开发设计指导思想:
(1)可维护性Maintainability
修改功能,需要改动的地方越少,可维护性越好
(2)可复用性Reusability
代码可以被以后重复使用
写出自己总结的类库
(3)可扩展性Extensibility/Scalability
添加功能无需修改原来代码
(4)灵活性flexibility/mobility/adaptability
代码接口可以灵活调用
2、设计原则
基于以上软件开发设计思想,具体派生出6大设计原则。基于这些原则,我们又会有一些设计模式、编码模板。
(1)单一职责原则Single Responsibility Principle
一个类只负责单一职责
高内聚、低耦合
(2)开闭原则Open-Closed Principle
对扩展开放,对修改关闭
实现尽量不修改原来代码的情况下进行扩展
抽象化,多态是开闭原则的关键
(3)里氏替换原则Liscov Substitution Principle
所有使用父类的地方,必须能够透明的使用子类对象,子类可以透明替换父类
(4)依赖倒置原则Dependency Inversion Principle
依赖抽象,而不是依赖具体实现
面向抽象编程、面向接口编程
(5)接口隔离原则Interface Segregation Principle
每一个接口应该承担独立的角色,不干不该自己干的事
Flyable和Runnable不该合二为一
避免子类实现不需要实现的方法
需要对客户提供接口的时候,只需要暴露最小的接口
(6)迪米特法则Law of Demeter
一个对象应该对其他对象保持最少的了解,又叫最少知道原则。
尽量降低类与类之间的耦合。不要对外公开太多public方法,以及非静态的public方法
尽量使用private等访问权限 。
尽量不要和陌生人说话,强调只和朋友谈话。
在迪米特法则中,对于一个对象,非陌生人包括以下几类:
当前对象本身(this);
以参数形式传入到当前对象方法中的对象
当前对象的成员对象
如果当前对象的成员对象是一个集合,那么集合中的元素也是朋友
当前对象所创建的对象
3、23种设计模式列表
设计模式分为创建型模式(creational)、结构型模式(structual)、表现型模式(behavioral)。
完整代码在这里:
https://github.com/phs999/DesignPatterns/tree/dp_gamemodel/design_pattern