zoukankan      html  css  js  c++  java
  • 设计模式 抽象工厂模式

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

    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();
      }

    }

  • 相关阅读:
    性能分析
    单例模式
    装饰者模式
    开发Chrome Extension截取你微博的帐号密码
    201703-3 markdown
    201612-3 权限查询
    201609-3 炉石传说
    201604-2 俄罗斯方块
    201604-3 路径解析
    201512-1 数位之和
  • 原文地址:https://www.cnblogs.com/hwgok/p/5424055.html
Copyright © 2011-2022 走看看