1 min to read
软件设计原则
软件设计6大原则
单一职责原则(SRP)
- 注意’职责’和’变化’的定义。接口,方法一定要做单一职责,类的设计尽量做到只有一个原因引起变化
开闭原则(OCP)
- 抽象约束
- 通过接口或抽象类约束拓展,对拓展进行边界限定,不允许出现在接口或抽象类中不存在的public方法
- 参数类型、引用对象尽量使用接口或者抽象类,而不是实现类
- 抽象层尽量保持稳定,一旦确定则不允许修改
- 元数据控制模块行为
- 制定项目章程
- 封装变化
- 将相同的变化封装到一个接口或抽象类中
- 将不同的变化封装到不同的接口或抽象类中
里氏替换原则(LSP)
- 子类必须完全实现父类的方法
- 子类可以有自己的个性
- 重载或实现父类的方法时输入参数可以被放大
- 重写或实现父类的方法时输出结果可以被缩小
迪米特法则(LoD)或最少知识原则(Least Knowledge Principle)
- 只和朋友交流
- 朋友间也是有距离的
- 是自己的就是自己的
接口隔离原则(ISP)
- 接口要尽量小
- 接口要高内聚
- 定制服务
- 接口设计是有限度的
依赖倒置原则(DIP)
- 高层模块不应该依赖底层模块,两者都应该依赖其抽象
- 抽象不应该依赖细节
- 细节应该依赖抽象
依赖注入的方式
- 构造函数注入
- 属性注入
- 接口申明注入
Comments