C++程序的可扩展性和可维护性
我个人认为,在目前的情况下,将行为分配给农民对可伸缩性和可维护性都有好处。
语义分析:
挤奶是一种行为。这种情况下,只有农夫有这个行为,牛在语义上不应该有这个行为。奶牛只能返回相关属性,让养殖户判断是否可以挤奶,挤奶量等等。
无论奶牛如何扩张,甚至农民如何扩张,都可以依靠抽象(当然不考虑双重分布问题),具有很高的可扩展性。
同时维修点少。如果是分配给奶牛的,如果奶牛的挤奶行为是错误的,可能需要从上到下修改奶牛的行为。如果分配给养殖户,错误只需要在挤奶范围内修改即可。
题外话:当然,复杂情况下的可维护性很难判断,也就是说,如果系统扩展到一定程度,养殖户的挤奶行为可能会非常复杂,所以它的可维护性远远低于分配给奶牛的。