抽象工厂模式(Abstract Factory)


首先看一下UML图:

 

 

我们从上往下一个一个实现:

public interface Human 
{
public void getColor();
public void talk();
public void getSex();
}
public abstract class AbstractWhiteHuman implements Human {

@Override
public void getColor() {
System.out.println("白色");
}

@Override
public void talk() {
System.out.println("我是白人");
}

}
public abstract class AbstractYelloHuman implements Human {

@Override
public void getColor() {
System.out.println("黄色");
}

@Override
public void talk() {
System.out.println("我是黄种人");
}

}
public class FemaleWhiteHuman extends AbstractWhiteHuman {

@Override
public void getSex() {
System.out.println("白人女性");
}

}
public class FemaleYellowHuman extends AbstractYelloHuman {

@Override
public void getSex() {
System.out.println("黄种人女性");
}

}
public class MaleWhiteHuman extends AbstractWhiteHuman 
{

@Override
public void getSex() {
System.out.println("白人男性");
}

}
public class MaleYelloHuman extends AbstractYelloHuman {

@Override
public void getSex() {
System.out.println("黄种人男性");
}

}

 

 

public interface HumanFactory 
{
public Human createWhiteHuman();
public Human createYellowHuman();
}

 

public class MaleHumanFactory implements HumanFactory 
{

@Override
public Human createWhiteHuman() {
return new MaleWhiteHuman();
}

@Override
public Human createYellowHuman() {
return new MaleYelloHuman();
}

}

 

public class FemaleHumanFactory implements HumanFactory {

@Override
public Human createWhiteHuman() {
return new FemaleWhiteHuman();
}

@Override
public Human createYellowHuman() {
return new FemaleYellowHuman();
}

}

 

 





posted @ 2012-02-26 20:20  LiLiNiuNiu  阅读(328)  评论(0编辑  收藏  举报