设计原则

由 笔尖 发布

开闭原则

扩展开放,修改关闭,方便解耦,增强软件复用性,是最重要的原则。面向接口编程常利用这点,如图,Javacourse原来实现了getPrice,现需要实现一个获取折扣价格,通常不修改原接口和当前实现,而是扩展出一个新的子类,如需调用getDiscountPrice,只需要引用该新的子类。

image-20200602222037131

在spring中,IOC和DI就体现了开闭原则的思想,通过IOC将所有实现类的创建交给spring,通过DI(xml配置或注解)选择性的将实现类注入。

依赖倒置原则

上层模块不应依赖底层模块,二者都应依赖其抽象,针对接口编程,不要针对实现。如图,Test为上层模块,Geely为下层模块,上层不依赖下层实现,二者都依赖于接口实现。

image-20200602214751060

单一职责原则

一个接口/类/方法只应负责一个功能。这个原则实际开发中很难把控,受业务开发周期、类之间的依赖。

接口隔离原则

接口内部方法定义应注意一定粒度,太大,导致实现类会废置一些方法,太小,导致接口数量多。

迪米特原则

类只应知道朋友类的相关实现,而尽可能少的知道不属于自己职责的类实现。如图,Boss调用Leader的checkNumofCourses,但自己不与Course有任何关系。

image-20200603080740710

合成复用原则

与开闭原则类似,新增加的功能不应直接写在已有的实现类中,而是通过扩展基类的实现类来完善新的方法。


暂无评论

发表评论