我在问自己如何用 Java 设计一个面向对象的地址簿。
假设联系人可以有多个联系详细信息,例如地址、电话号码和电子邮件地址。
实现此目的的一种方法是为每个联系人提供每种类型的 ArrayList
。但必须有更好、更面向对象的解决方案。它是什么?
最佳答案
我能给你的最面向对象的建议是为每个项目/信息创建一个类。例如:
public abstract class ContactInfo { /* ... */ }
public class Address extends ContactInfo { /* ... */ }
public class PhoneNumber extends ContactInfo { /* ... */ }
public class EmailAddress extends ContactInfo { /* ... */ }
public class Contact {
private String name;
private Set<ContactInfo> info;
// ...
}
最后,
public class AddressBook {
List<Contact> contacts;
// ...
}
对于您的具体情况来说,这可能会也可能不会太过分,但作为一个思想实验,这是可行的方法。显然,它处理了 OOP 的字面部分——使用对象——但也为封装、抽象和继承奠定了基础,这些都是密切相关的原则。
关于java - 设计通讯录的最面向对象的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5393919/