软件设计遵循——六大原则
1)开闭原则
定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭
原则:用抽象构建框架,用实现扩展细节
优点:提高软件系统的可复用性和可维护性
2)里氏替换原则
定义:所有引用基类的地方必须能透明化地使用其子类的对象
原则:即子类可以扩展父类的功能,但是不能改变父类原有的功能。即在子类继承父类的时候,除了添加新的方法完成新增功能之外,尽量不要重写父类的方法;子类可以实现父类的抽象方法,但是不能覆盖父类的非抽象方法
优点:避免实现反向联动引发其他新的风险和震荡
3)接口隔离原则
定义:用多个专门的接口,而不使用单一的总接口,客户端(访问端或者请求调用)不应该依赖它不需要的接口
原则:注意适度原则,一定要适度;一个类对一个类的依赖应该建立在最小的接口上,建立单一接口,不要建立庞大臃肿的接口;尽量细化接口,接口中的方
法尽量少、尽量专注
优点:符合我们常说的高内聚低耦合的设计思想,从而使得类具有很好的可读性、可扩展性和可维护性
4)单一职责原则
定义:不要存在多于一个导致类变更的原因,即尽可能保持单一类的独立性
原则:一个类/接口/方法只负责一项职责,即不能复杂化一个类/接口/方法既要这样也要那样
优点:降低类的复杂度、提高类的可读性和可用性,提高系统的可维护性、降低变更引起的联动风险
5)依赖倒置原则
定义:高层模块不应该依赖底层模块,二者都应该依赖其抽象
原则:抽象不应该依赖细节(实现),细节(实现)应该依赖抽象;针对接口编程,不要针对实现编程
优点:可以减少类间的耦合性、提高系统稳定性,提高代码可读性和可维护性,可降低修改程序所造成的风险
6)迪米特法则(最少知道原则)
定义:一个对象应该对其他对象保持最少的了解,又叫最少知道原则,即尽量降低类与类之间的耦合
原则:强调只和朋友交流,不和陌生人说话,即尽可能在调用类的时候减少新建对象或者线程(包括内部类)
优点:降低类之间的耦合