面向对象7大设计原则
面向对象7大设计原则
单一职责
一个类,一个方法,只负责一件事。
里氏替换
在任何使用父类对象的地方,替换为子类对象以后,程序不会有问题出现。要根据业务场景进行替换,比如“长方形和正方形问题”。
依赖倒置
上层依赖于下层,它们都应该依赖于抽象。
举例:spring中的依赖倒置,先定义接口,把接口方法规则定义好;再写接口的实现并注入到容器中,注意该实现类永远不要有new的方式供外部调用;业务调用者通过调用接口,采用注解依赖注入实现;但该接口有多个实现时,显式指定具体使用哪个实现类。
迪米特法则
最少知道原则,一个类,对于另外一个类,应该知道的越少越好(封装)。
只和朋友进行通信:
- 方法参数
- 方法返回类型
- 方法内,实例化出来的局部变量
- 类中的字段
接口隔离
使用多个专门的接口比使用单一的总接口要好。
开闭原则
对拓展开放,对修改关闭。
组合优于继承
如果父类和子类作者不是同一个人,那么就慎用继承。
因为父类作者不知道未来的用户会重写自己的什么方法。子类作者不知道作者在未来的版本里,会改写吗方法,添加什么方法。
如果父类和子类作者是同一个人,那么就可以用继承