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

    }

  • 相关阅读:
    kbmMW 5.07.00试用笔记
    在 Andriod/IOS 程序中使用自定义字体
    【转】Delphi 10.3关于相机该注意的细节
    Delphi 10.3终于来了
    REST easy with kbmMW #17 – Database 6 – Existing databases
    【go】1环境搭建go语言介绍
    【ESSD技术解读02】企业级利器,阿里云 NVMe 盘和共享存储
    项目实战总结以及接入UAPM
    RocketMQ 5.0 POP 消费模式探秘
    Cube 技术解读 | 详解「支付宝」全新的卡片技术栈
  • 原文地址:https://www.cnblogs.com/hwgok/p/5424055.html
Copyright © 2011-2022 走看看