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

    }

  • 相关阅读:
    策略模式-观察者模式-装饰者模式-工厂模式-单例模式
    mac下 tomcat8+jdk1.8+servlet+Spring环境搭建中的问题
    删除部分字符使其变成回文串问题——最长公共子序列(LCS)问题
    JAVA锁的膨胀过程和优化
    单例模式
    简单工厂模式(静态工厂)和工厂方法模式和抽象工厂模式
    从基层容器类看万变不离其宗的JAVA继承体系
    响应式布局1
    网页加载速度优化4--图片懒加载
    jquery选择器返回值
  • 原文地址:https://www.cnblogs.com/hwgok/p/5424055.html
Copyright © 2011-2022 走看看