用户在调用的时候, 根据实际情况调用就可以了, 比如下面的代码: 张三是全职妈妈, 只有生活行为, 李四是职场妈妈, 既有生活行为又有工作行为.
public static void main(String[] args) { // 张三--全职妈妈 LivingBehavior zslivingBehavior = new LivingBehaviorImpl(); BehaviorComposer zsBehaviorComposer = new IBehaviorComposerImpl(); zsBehaviorComposer.add(zslivingBehavior); // 李四--职场妈妈 LivingBehavior lsLivingBehavior = new LivingBehaviorImpl(); WorkingBehavior lsWorkingBehavior = new WorkingBehaviorImpl(); BehaviorComposer lsBehaviorComposer = new IBehaviorComposerImpl(); lsBehaviorComposer.add(lsLivingBehavior); lsBehaviorComposer.add(lsWorkingBehavior); }可以看出单一职责的好处.
五、单一职责原则的优缺点
类的复杂性降低: 一个类实现什么职责都有清晰明确的定义了, 复杂性自然就降低了
可读性提高: 复杂性降低了,可读性自然就提高了
可维护性提高: 可读性提高了,代码就更容易维护了
变更引起的风险降低: 变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的实现类有影响,对其他的接口和类无影响,这对系统的扩展性、维护性都有非常大的帮助
四、最佳实践
https://baijiahao.baidu.com/s?id=1646244620500787383&wfr=spider&for=pc