日期:2014-05-20  浏览次数:20759 次

一道关于单例模式的题
本帖最后由 daituzhang 于 2013-09-05 07:37:33 编辑
我是java零基础者,靠google和baidu在解这道题,如果有低级错误望各位大神抽打
因为题目原文是英文,我翻译可能有点不准确:

1)建立一个叫做Organization的类,它不能被实例化超过一次但是可以提供给全局。它包含仅一个叫做getMembers 的public method,返回一个collection.
2) 建立另一个叫做Member的类,publicly exposes(公共得包括?) FirstName, lastName 和 DateJoined bean properties,请使用合适的数据类型
3)建立第三个叫做OrganizationHelper的类,包含一个method用于输出Organization类中所有Members的数据。输出的类型随意。

然后我就开始纠结了,第一小题我百度下来应该是个单例模式的问题,collection我觉着有点像c++里面的containers,我就用了ArrayList.但是这个ArrayList到底怎么获取member的信息我却想不清楚。然后因为根据单例模式,这个类必须向整个系统提供这个实例对象,那么要怎么同时又返回一个collection呢?还是说这个实例对象本身就是一个collection?所以我两个method就分开了,只有getMember设成了public

第二小题我又纠结什么是bean property,百度到javaBean但是好像是和html结合起来用的,我是不是对bean property这两个单词过度理解了?

第三小题我只是放了打印的代码……但是那个method名字叫XXhelper,C++面向对象里面helper函数是在类外面的,我不清楚java是不是也有这种区别,所以我就只做了个把它作为像main一样的class了

代码如下,虽然得到了结果,但是我很怀疑错过了几个关键的点

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date; 
import java.util.List;

class Organization {
  ArrayList<Member> List = new ArrayList<Member>();   
  void add(Member temp)
  {
  List.add(temp);   
  }
  private static Organization instance=null;
  private Organization(){}
  static Organization getInstance(){
      if(instance==null)
      instance=new Organization();
      return instance;
  }
  public ArrayList<Member> getMembers()
  {
  return List;
  }
  
}

class Member                              
{                                                               
 public String firstName;                                     
 public String lastName;