Class 如何决定一个方法是否应该属于哪个类?

Class 如何决定一个方法是否应该属于哪个类?,class,oop,methods,Class,Oop,Methods,我有三门课: 产品 产品列表 和客户 product\u list类有一个数组列表,用于存储product对象 如果我有一个viewProduct方法,它应该属于customer类还是product\u list类 根据我自己的概念,viewProduct方法应该属于customer类,因为customer查看产品。但是在代码方面,customer类中的方法如何从产品列表类中获取数据?类是一个数据结构,与处理它的算法绑定在一起 因此,如果您决定将一个方法放在何处,经验法则是:选择一个类,它对

我有三门课:

  • 产品
  • 产品列表
  • 客户
product\u list
类有一个数组列表,用于存储
product
对象

如果我有一个
viewProduct
方法,它应该属于
customer
类还是
product\u list


根据我自己的概念,
viewProduct
方法应该属于
customer
类,因为customer查看产品。但是在代码方面,
customer
类中的方法如何从
产品列表
类中获取数据?

类是一个数据结构,与处理它的算法绑定在一起

因此,如果您决定将一个方法放在何处,经验法则是:选择一个类,它对该类的数据结构最有效。如果做得好,它甚至不应该直接访问其他类的数据成员,而应该只访问它们的方法

同样从方法的名称可以看出,
viewProduct
应该属于
customer
:如果它属于
product
,那么
viewProduct
名称将是多余的。然后一个
视图
名称会更好

您的示例没有说明任何内容,
客户
s与特定的
产品
s的关系。例如,如果您要开发一个webshop,那么
客户可能会从控制器为他们生成的列表中选择一个产品

您的规范缺乏机制,
客户如何与产品相关。仔细想想,你就会知道答案