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

    }

  • 相关阅读:
    ASP.NET Core 返回 Json DateTime 格式
    IdentityServer4 SigningCredential(RSA 证书加密)
    IdentityServer4 指定角色授权(Authorize(Roles="admin"))
    ASP.NET Core 指定环境发布(hosting environment)
    ASP.NET Core 使用 Redis 客户端
    IdentityServer4 实现 OAuth 2.0(密码模式
    IdentityServer4 登录成功后,跳转到原来页面
    IdentityServer4 退出登录后,跳转到原来页面
    C#面向插件级别的软件开发
    使用XML序列化实现系统配置
  • 原文地址:https://www.cnblogs.com/hwgok/p/5424055.html
Copyright © 2011-2022 走看看