我是OOP的新手,我刚开始学习它。它太复杂,无法确定类的功能。让我们举一个例子:
我们有一个地址簿,用户想要添加一个新的联系人。 在这种情况下,我们有两个类:
问题:
感谢任何好主意;)
答案 0 :(得分:1)
可用的责任分配"责任"是一个OOP设计和架构决策,没有一个简单的正确答案。有关讨论,请参阅Stack Overflow问题What is the single most influential book every programmer should read?
您将通过编码(使用某人的设计或创建自己的设计效果不佳)来了解优缺点。
然而,有一些有用/频繁的责任分配,称为http://en.wikipedia.org/wiki/Software_design_pattern
在我看来,唯一固定的事实是每个类/功能/结构都应该明确定义/记录其责任 - 因为最初的代码行 - 和&#34; do one thing and do it well&#34; < / p>
答案 1 :(得分:0)
联系人是特定于用户的。因此,每个用户对象(类实例)都应该包含自己的联系人对象,该对象是联系人(其他用户)对象的容器,包括名称,地址,电话等。
class User {
String name;
String phone;
String address;
Contacts contacts;
....
}
class Contacts {
List<User> items;
}
Contacts类应该具有保存新联系人的实现,需要从User方法调用,如下所示。
User u;
Contacts c = u.getContacts();
c.addContact(name, address, phone);
应在User类中检查用户的权限。
这些类的方法应该与数据库连接。为此,每个类方法都可以打开与数据库的新连接并执行SQL查询。用户cass的示例方法:
User getContact(String name) {
Connection conn = getConnection();
....
PreparedStatement ps = con.prepareStatement("select * from Contacts where name = ?");
...
return userRcd;
}
答案 2 :(得分:0)
我建议您充分了解SOLID原则,以及良好设计的基础知识。