• 设计模式 抽象工厂模式


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

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

    }

  • 相关阅读:
    Aibabelx-shop 大型微服务架构系列实战之技术选型
    龙应台:中年人的迷惘,比年轻人的更可怕!
    劝进篇
    高并发与多线程的关系、区别、高并发的技术方案
    redis常用知识
    Lucene全文检索入门使用
    大数据综合案例-网站日志分析
    python数据类型
    Tornado
    flask-sqlalchemy用法详解
  • 原文地址:https://www.cnblogs.com/hwgok/p/5424055.html
Copyright © 2020-2023  润新知