参考博文:https://www.cnblogs.com/pengd...
软件开发原则的目的:软件的实现是高内聚,低耦合,方便修改和扩展,所以前人总结了如下原则,不能说软件开发严格针对这些标准来,需要针对具体场景进行分析。
1.单一职责原则:一个类一个方法的作用只有一种职责,如String类、File类等等,String类不可能有File类的功能,如果有的话,那就违反了单一职责原则。
2.开闭原则:面向修改关闭,面向扩展开放。逻辑的具体实现不能在具体使用的时候被修改,但针对具体的需求可以扩展。如Collections.sort(),不能修改Collections.sort()方法的具体实现,但可以修改方法Comporter接口来实现对Collections.sort()的扩展。
3.里斯替换原则:有点像面向接口编程,在new具体的对象时,一定要使用基类来进行引用实现类,在程序具体运行中可以实现动态判断,如在new对象时,可以使用具体的接口来引用对象,当具体的实现由扩展时候,原有的引用就可以使用到扩展的功能了。
4.接口隔离原则:当对外暴露服务时候,一定不是至对外提供一个包含所有功能的大接口,应该提供每个具体功能的小接口,每个接口之间达到隔离的原则。
5.依赖倒转原则:在使用中应该依赖抽象,而不是依赖具体的实现,面向接口编程,而不是面向实现编程。
6.迪米特法则:调用陌生类的时候,一定通过熟悉的类来调用。和陌生人交朋友,一定通过朋友进行。哪些人才算作朋友了?当前对象this,类中的属性,类中的集合属性。
7.聚合复用原则:能够使用聚合就不要使用继承,在一个对象中将已存在的类做为一个对象,达到复用的目的;如果继承一个类,方便复用就会可能破坏原有的封装,但这也可以针对具体场景分析,如果真正需要改变原有封装逻辑比自己聚合使用更方便也可以使用继承。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。