以下对于软件设计思想的总结来源日常。
总的软件设计规则;高内聚,低耦合。其实通俗的讲一个软件项目的设计,各个模块与功能不要互相牵扯太多。
关于设计模式的六大原则:
1、单一职责原则:一个类只负责一项功能或者原则
解决的问题:当类A有两个功能或者职责,当需要变更其中一项功能时,另一项的功能极有可能受损甚至失效。
2、里氏替换原则:使用继承时,一个类继承一个类,尽量不要重写或重载父类的方法,除非是添加新的方法。
解决的问题:防止父类方法的改写导致继承类的不可控影响。
3、依赖倒置原则:高级模块不应该依赖于低级模块,细节应该依赖于抽象。
解决的问题:高级模块类A依赖于类B,如果修改成依赖于类C,则需要修改类A,但是由于高级类A可能有一些子类,如果修改可能需要随之子类的修改,同时会带来不可控的影响。不如可以设置一个中间接口,让类A依赖于接口D,同时让类B还有类C都实现接口D,这样类A都间接与类B与类C产生联系。
4、接口隔离原则:一个模块不应该依赖或者实现它不需要的接口,一个类与一个类的联系的接口应该是紧凑的。
解决的问题:类A与类B的联系通过接口D,但是接口D里有许多多余的方法,这样就需要将接口D拆分成小的接口。
5、迪米特法则:当一个类与另一个类联系越紧密,两者的耦合度就会越高,那么一个类的修改对另一个的影响就会越大。
解决的问题:当设计类的时候要考虑相邻类的耦合度。
6、开闭原则:一个软件实体如类、函数等应该实现对外扩展开放,对内修改关闭。
解决的问题;一个类的修改,修改的抽象级别越高,影响的深度就会越大,尽量对扩展的功能去增加行为,而不是修改现行的代码。
一句话,虽然存在着六大原则,但是这些宽泛话在实际软件设计的过程一般是适度考虑,实际取决于软件开发者的个人素养与视野。