第1个回答 推荐于2017-09-26
public class ManFactory {
/* 以下是单例模式的使用,外部需要使用该类时只能实例化一个对象*/
private static ManFactory mf = new ManFactory();
private static List<Man> allMan = new ArrayList<ManFactory.Man>();
private ManFactory(){}
public static ManFactory instance(){
return mf;
}
/*这里是简单工厂模式的使用,当需要一个人的时候,直接调用工厂类的造人方法, 而不用去新建一个人*/
public Man makeMan(String name){
Man man = new Man();
man.setName(name);
allMan.add(man);//将造出来的人放入工厂的一个集合中,当以后需要这群人统一做事的时候,可以直接获取到
return man;
}
public static List<Man> getAllMan() {
return allMan;
}
class Man{
private String name;
public void dancing(){
System.out.println(name +"正在跳舞");
}
public void setName(String name) {
this.name = name;
}
}
public static void main(String[] args) {
/*使用了单例模式,看上去是构建了两个工厂,其实用的还是一个*/
ManFactory fc = ManFactory.instance();
ManFactory fc2 = ManFactory.instance();
fc.makeMan("小明");
fc.makeMan("小红");
fc2.makeMan("小杨");
fc2.makeMan("小张");
for(Man man:ManFactory.getAllMan()){
man.dancing();
}
}
}本回答被网友采纳