我是面向对象编程的新手。我正在为杂货店开发软件。杂货店有客户,客户有地址和订阅。所有这些都是应用程序中的不同类。 我有点困惑,我应该在哪个类中创建哪个方法以及我应该如何决定它。 喜欢 viewSubscription()应该是Subscription类或Customer类的一部分。 modifyCustomer()应该是Customer类或Store类的一部分。
答案 0 :(得分:0)
面向对象编程的一个想法是将有意义的事物组合在一起。在您的示例中,由于他们正在处理与Customer相关的信息,因此我可能会将这两种方法都放在Customer类中。
答案 1 :(得分:0)
方法是行为,变量是状态。
订阅什么?从什么是遗嘱?
一个Suscription视图本身,谁将查看订阅?一个客户?
一个嫌疑人应该是一个班级,但是POJO,它是一个州的集合。客户可以看到这些状态。
答案 2 :(得分:0)
OOP可以轻松解决复杂问题。您可能希望坐下来对类的关系以及类包含的数据进行关联。很明显哪种方法应该去哪里。
为什么视图订阅应该是Subscription维护合约的成员?
总是问自己这个简单的问题:查看订阅的内容是什么?你想做什么动作。
我打赌你想要查看客户的订阅!使viewSubscription成为客户的一种方法! customer1.viewSubscription()
查看UML和OCL。他们将帮助您模拟您的想法。
答案 3 :(得分:0)
只是一个概述: 对象代表一个真实的实体,例如一辆车,A汽车有一些属性,如它有车轮,转向,变速箱等等,就像它有一些行为,如它向前移动,向左转向,转向右,它停止。
上面提到的所有事情都与汽车相关,当面向对象的编程方法看起来像,我们制造一个类Car,属性(车轮,转向,变速箱等)被定义为该类内的变量和行为(向前移动,向左转向,向右转向)被定义为该类中的功能。没有关于OOP的硬性和快速规则,您必须使其在逻辑上感觉为尽可能真实生活例如,在您的情况下,订阅类具有与订阅相关的所有信息,并且客户已订阅,因此viewSubscription()
方法应位于客户类中私有字段,因为它应该获取并显示与特定客户相关的订阅信息。 modifyCustomer()
因为它涉及修改Customer类的数据字段,所以这也将包含在 customer class 中,因为字段值的所有修改都应该在包含字段的类中完成