【发布时间】:2016-01-16 22:58:39
【问题描述】:
我刚刚开始了一个面向对象的编程课程。我正在尝试编写一个程序,通过提供名称和年龄参数将Customer 添加到System,但不允许重复。
如果我正常编写此 Java 代码,我只需使用名为 new() 的方法创建一个名为 Customer 的类,其中包含名称和年龄实例变量,这将创建一个新客户。
但是由于这不是列表或任何东西,而是简单地将Customer 添加到System,我在哪里编写不允许重复的方法?
【问题讨论】:
-
我不建议您在负责创建新实例的类中创建
new()方法;这就是new关键字的用途。 -
好吧,听起来你的
System类需要一个addCustomer方法。该方法应该处理检查重复的逻辑,因为Customer不应该知道System。 -
您的
System不能只有Set<Customer>成员吗?那么,随着Customer实现equals()和hashCode,应该没问题。 -
你不会创建一个名为
new()的方法。你不能。 -
听起来你想创建一个factory pattern
标签: java oop object-oriented-analysis