zoukankan      html  css  js  c++  java
  • 抽象工厂模式(Abstract Factory)


    首先看一下UML图:

    我们从上往下一个一个实现:

    public interface Human 
    {
    public void getColor();
    public void talk();
    public void getSex();
    }
    public abstract class AbstractWhiteHuman implements Human {

    @Override
    public void getColor() {
    System.out.println("白色");
    }

    @Override
    public void talk() {
    System.out.println("我是白人");
    }

    }
    public abstract class AbstractYelloHuman implements Human {

    @Override
    public void getColor() {
    System.out.println("黄色");
    }

    @Override
    public void talk() {
    System.out.println("我是黄种人");
    }

    }
    public class FemaleWhiteHuman extends AbstractWhiteHuman {

    @Override
    public void getSex() {
    System.out.println("白人女性");
    }

    }
    public class FemaleYellowHuman extends AbstractYelloHuman {

    @Override
    public void getSex() {
    System.out.println("黄种人女性");
    }

    }
    public class MaleWhiteHuman extends AbstractWhiteHuman 
    {

    @Override
    public void getSex() {
    System.out.println("白人男性");
    }

    }
    public class MaleYelloHuman extends AbstractYelloHuman {

    @Override
    public void getSex() {
    System.out.println("黄种人男性");
    }

    }
    public interface HumanFactory 
    {
    public Human createWhiteHuman();
    public Human createYellowHuman();
    }
    public class MaleHumanFactory implements HumanFactory 
    {

    @Override
    public Human createWhiteHuman() {
    return new MaleWhiteHuman();
    }

    @Override
    public Human createYellowHuman() {
    return new MaleYelloHuman();
    }

    }
    public class FemaleHumanFactory implements HumanFactory {

    @Override
    public Human createWhiteHuman() {
    return new FemaleWhiteHuman();
    }

    @Override
    public Human createYellowHuman() {
    return new FemaleYellowHuman();
    }

    }





  • 相关阅读:
    常见的网络设备:集线器 hub、网桥、交换机 switch、路由器 router、网关 gateway
    Linux 路由表详解及 route 命令详解
    Flannel
    Flannel
    Hugo
    Nginx 实现全站 HTTPS(基于 Let's Encrypt 的免费通配符证书)
    Nginx 安装
    ETCD 简介及基本用法
    Vagrant 手册之 Multi-machine 多机器
    Vagrant 手册之 Provisioning
  • 原文地址:https://www.cnblogs.com/xiaobo68688/p/2368770.html
Copyright © 2011-2022 走看看