首页 > 其他 > 详细

设计模式 抽象工厂模式

时间:2016-04-23 11:38:33      阅读:286      评论:0      收藏:0      [点我收藏+]

抽象工厂模式:处理不同产品等级的对象(产品族)

public interface Human {
  public void getSound();
  public void getColor();
  public void getSex();
}

public abstract class BlackHuman implements Human{

  @Override

  public void getSound() {
    System.out.println("黑人说黑话");
  }

  @Override
  public void getColor() {
    System.out.println("黑人是黑色的");
  }
}

public class BlackMaleHuman extends BlackHuman{

  @Override
  public void getSex() {
     System.out.println("此乃黑男");
  }

}

public class BlackFeMaleHuman extends BlackHuman{

  @Override
  public void getSex() {
     System.out.println("此乃黑女");
  }

}

public abstract class WhiteHuman implements Human {

  @Override
  public void getSound() {
     System.out.println("白人说白话");
  }

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

}

public class WhiteFeMaleHuman extends WhiteHuman {

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

public class WhiteMaleHuman extends WhiteHuman {

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

public abstract class YellowHuman implements Human{

  @Override
  public void getSound() {
    System.out.println("黄人说黄话");
  }

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

public class YellowFeMaleHuman extends YellowHuman{

  @Override
  public void getSex() {
     System.out.println("此乃黄女");
  }

}

public class YellowMaleHuman extends YellowHuman{

  @Override
  public void getSex() {
     System.out.println("此乃黄男");
  }

}

public interface AbstractFac {
  public BlackHuman newBlack();
  public WhiteHuman newWhite();
  public YellowHuman newYellow();
}

public class FeMaleFac implements AbstractFac {

  @Override
  public BlackHuman newBlack() {
    return new BlackFeMaleHuman();
  }

  @Override
  public WhiteHuman newWhite() {
    return new WhiteFeMaleHuman();
  }

  @Override
  public YellowHuman newYellow() {
     return new YellowFeMaleHuman();
  }

}

public class MaleFac implements AbstractFac {

  @Override
  public BlackHuman newBlack() {
     return new BlackMaleHuman();
  }

  @Override
  public WhiteHuman newWhite() {
     return new WhiteMaleHuman();
  }

  @Override
  public YellowHuman newYellow() {
     return new YellowMaleHuman();
  }

}

设计模式 抽象工厂模式

原文:http://www.cnblogs.com/hwgok/p/5424055.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!