Android 面向对象六大设计原则之单一职责原则

1.单一职责原则简介


单一职责原则(SRP:Single responsibility principle)又称单一功能原则,面向对象六个基本原则(SOLID)之一。它规定一个类应该只有一个发生变化的原因


单一职责原则是最简单的面对对象设计原则,它用于控制类的粒度大小。在软件系统中,一个类(大到模块,小到方法)承担的职责越多,它被复用的可能性就越小,而且一个类承担的职责过多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能会影响其他职责的运作,因此要将这些职责进行分离,将不同的职责封装在不同的类中,即将不同的变化原因封装在不同的类中,如果多个职责总是同时发生改变则可将它们封装在同一类中。




2.代码举例

需求描述:描述动物喜爱的食物。


2.1.普通

Java Bean

Android 面向对象六大设计原则之单一职责原则_第1张图片


调用类

Android 面向对象六大设计原则之单一职责原则_第2张图片


结果

Android 面向对象六大设计原则之单一职责原则_第3张图片


那么问题来了,如果现在新添加几个动物,比如 狗和猫。它们是不吃草的。所以显然要修改Java Bean类



2.2.修改


吃草 Java Bean

Android 面向对象六大设计原则之单一职责原则_第4张图片

吃骨头 Java Bean

Android 面向对象六大设计原则之单一职责原则_第5张图片


吃老鼠 Java Bean

Android 面向对象六大设计原则之单一职责原则_第6张图片


调用类

Android 面向对象六大设计原则之单一职责原则_第7张图片



结果

Android 面向对象六大设计原则之单一职责原则_第8张图片



2.3.当然也可以使用一个动物类,而把吃方法的参数添加一个即可

Java Bean

Android 面向对象六大设计原则之单一职责原则_第9张图片


调用类

Android 面向对象六大设计原则之单一职责原则_第10张图片



结果

Android 面向对象六大设计原则之单一职责原则_第11张图片



附:

高内聚 低耦合


1.基本概念

内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。 


耦合性:又称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息 。


注:对于低耦合,粗浅的理解是:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。 



2.高内聚低耦合系统的好处 

高内聚,低耦合的好处体现在系统持续发展的过程中,高内聚,低耦合的系统具有更好的重用性,维护性,扩展性,可以更高效的完成系统的维护开发,持续的支持业务的发展,而不会成为业务发展的障碍。 



3.关于低耦合

尽量使不同模块间少关联,即一个模块明确完成一个功能。但是一个模块内部又有许多子系统,子系统中的类之间不关联是不可能的,一个模块下的子系统要少用继承多用组合(使用组合时,就会使子系统的不同类之间产生关联)——总结一句话就是:模块之间要实现低耦合,模块下的类之间要多用组合少用继承。

你可能感兴趣的:(综合)