分类：电脑/网络-程序设计-JAVA相关
问题：Java题100分求助思想好的来帮助一下！第一题：使用OO的观念 
第一题：使用OO的观念来强化这此opyFactory类，CopyFactory.java源码如下：public class CopyFactory {    public CopyFactory() {}    public Object createCopy(Object source) {        if (source instanceof Integer) {            return new Integer(((Integer)source).intValue());        }   第一题：使用OO的观念来强化这此opyFactory类，CopyFactory.java源码如下：public class CopyFactory {    public CopyFactory() {}    public Object createCopy(Object source) {        if (source instanceof Integer) {            return new Integer(((Integer)source).intValue());        }        if (source instanceof Long) {            return new Long(((Long)source).longValue());        }        if (source instanceof Float) {            return new Float(((Float)source).floatValue());        }        return null;    }       }TestCase_CopyFactory.java源码如下：import junit.framework.TestCase;public class TestCase_CopyFactory extends TestCase {    private CopyFactory _factory;    public TestCase_CopyFactory(String name) {        super(name);    }    protected void setUp() throws Exception {        _factory = new CopyFactory();    }    protected void tearDown() throws Exception {    }    public void testInteger() throws Exception {        Integer source = new Integer(2);        Object copy = _factory.createCopy(source);        assertTrue("Wrong instance", copy instanceof Integer);        assertEquals("Should be equal", source, copy);        assertNotSame("Should be new instance", source, copy);    }    public void testLong() throws Exception {        Long source = new Long(2);        Object copy = _factory.createCopy(source);        assertTrue("Wrong instance", copy instanceof Long);        assertEquals("Should be equal", source, copy);        assertNotSame("Should be new instance", source, copy);    }    public void testFloat() throws Exception {        Float source = new Float(2.34f);        Object copy = _factory.createCopy(source);        assertTrue("Wrong instance", copy instanceof Float);        assertEquals("Should be equal", source, copy);        assertNotSame("Should be new instance", source, copy);    }}第二题：该公司类用一个集合对象（collection）来保存员工信息,它们之间的关系在设计上还有哪里可以改良的？Company.java源码如下：import java.util.Collection;import java.util.ArrayList;public class Company {     private String name;    private ArrayList staff;    public Company(String companynName) {        this.companyName = companyName;        this.staff = new ArrayList();    }    public String getName() {        return name;    }    public Collection getStaff() {        return staff;    }}Person.java源码如下：public class Person{     private String _name;      public Person(String name){        _name = name;    }    public String getName() {        return _name;    }}TestCase_Company.java源码如下：public class TestCase_Company extends TestCase {    private Company company;    public TestCase_Company(String name) {        super(name);    }    protected void setUp() throws Exception {        company = new Company("my company");    }    protected void tearDown() throws Exception {        company = null;    }    public void testCanAddStaff() throws Exception {        Person person1 = new Person("person1");        Person person2 = new Person("person2");        Person person3 = new Person("person3");        company.getStaff().add(person1);        company.getStaff().add(person2);        company.getStaff().add(person3);        assertEquals("No of staff", 3, company.getStaff().size());        Collection staff = company.getStaff();        assertTrue("Person 1", staff.contains(person1));        assertTrue("Person 2", staff.contains(person2));        assertTrue("Person 3", staff.contains(person3));        staff.remove(person1);        assertEquals("No of staff", 2, company.getStaff().size());    } }第一次到这样的问题，蛮晕的，设计观念好的朋友帮帮我，说一下解答的思想就可以了，谢谢。对JUnit不熟的朋友可以不用看TestCase类，那是测试用的。
回答：第一个题目用重载构造函数比较好吧？OBJECT成本比较高的。

第二个题目COLLECTION和ARRAYLIST里面都包含了COMPANY NAME的信息。我个人没必要。其实只要一个容器就好。把每个STAFF加一个成员标识其所在公司，然后统一放在一个容器里面就可以了。Company类设计失误。应该加强Person类的设计，使其包含Company要表达的信息。这样就不需要ARRAYLIST。

不知道正确否。设计思想其实朴实就好。