oop – 如何定义单一责任?

前端之家收集整理的这篇文章主要介绍了oop – 如何定义单一责任?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道“有一个单一的理由改变”。现在,究竟是什么?有没有一些气味/迹象可以告诉这个类没有单一的责任?或者真正的答案隐藏在YAGNI和只有重构单一的责任,第一次你的类改变?
单一责任原则

有很多明显的例子。 CoffeeAndSoupFactory。咖啡和汤在同一个设备可以导致相当令人讨厌的结果。在此示例中,设备可能会分解为热水器发电机和某种类型的搅拌器。然后可以从这些组件构建新的CoffeeFactory和SoupFactory,并且可以避免任何意外混合。

在更微妙的情况中,数据访问对象(DAO)和数据传输对象(DTO)之间的紧张是非常普遍的。 DAO与数据库通信,DTO是可序列化的,用于在进程和机器之间传输。通常,DAOs需要对数据库框架的引用,因此它们在富客户端上不可用,这些客户端既没有安装数据库驱动程序,也没有访问数据库的必要权限。

代码气味

>类中的方法开始按功能区域分组(“这些是Coffee方法,这些是Soup方法”)。>实现很多接口。

猜你在找的设计模式相关文章