含义:一个类只负责一个功能领域中的相应职责,一个类应该只有一个发生变化的原因
原因:一个类功能过多会导致高合度很高,不容易被复用
难点:无法明确的做到合理拆分类,往往经验不足就无法做到合理的拆分类,往往就是过度拆分或者,拆分不彻底。
怎么判断需不需要拆分类:将一系列的行为封账到一个类上。
例子:
1.0需求:我的一天
接口:行为
方法:上班、下班、睡觉、打游戏、吃晚饭、上课
创建一个学生的类继承行为的时候,需要实现六个方法,但是有的方法并不需要所以就产生了冗余和设计不佳的问题
1.0需求:我的一天
接口:行为
方法:睡觉、吃晚饭
接口:成人行为(继承行为)
方法:上班、下班、睡觉、打游戏、吃晚饭
接口:学生行为(继承行为)
方法:睡觉、打游戏、吃晚饭、上课
这样就将类拆分开,当然,这只是一个简单例子,比如生活更加的复杂的话,吃晚饭又可以分成家庭聚会的晚饭,一个人吃晚饭。所以类的拆分是依赖于实际业务逻辑进行拆分的
总结:一个类只完成一类工作,不要让一个类完成业务逻辑中的超过一类的工作