【发布时间】:2016-09-04 09:44:22
【问题描述】:
我的问题是以下哪个示例代表正确的做法? 这些方法的优点和缺点是什么。 是否有另一种(正确的)方法来实现这一目标?
假设我有课
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String print() {
return this.name;
}
}
类的用法如下:
public static void main(String[] args) {
List<Person> people = new ArrayList<Person>();
people.add(new Person("Jane Doe"));
System.out.println(people.get(0).print());
}
然后是另一种方法:
public class Persons {
private ArrayList<String> persons;
public Persons() {
persons = new ArrayList<String>();
}
public void putPerson(String name) {
persons.add(name);
}
public String print(int id) {
return this.persons.get(id);
}
}
然后使用它:
public static void main(String[] args) {
Persons persons = new Persons();
persons.putPerson("John Doe");
System.out.println(persons.print(0));
}
编辑:
假设我有 10 000 个这样的人。 创建 10,000 个类实例有什么缺点吗?
【问题讨论】:
-
您的实际问题是什么?自己收藏是对还是错? (在这种情况下,
Persons是一个只能包含Person对象的集合) -
制作这些系列有什么缺点吗?
-
@Evus 只要
Person有一个字段就可以了,尝试添加多个字段和不同的子类型。 -
我认为这要么是基于选项的,要么更适合“程序员”网站。恕我直言,除非您 (a) 向
Persons类添加更多专门的方法,或者 (b) 想要限制某些方法,例如删除个人,一个基本的(键入的)列表就足够了,并且最终更清晰。此外,您不必重新公开所有列表功能。 -
我结束了问题。因为它可以是基于意见的,我的问题是不准确的。