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

    }





  • 相关阅读:
    App开放接口api安全性—Token签名sign的设计与实现
    查看文件(或文件夹)被哪个进程使用【文件已在另一程序中打开】
    利用递归将数组转码
    h5 定位
    使用OAuth Server PHP实现OAuth2服务
    在Linux上安装jdk,mysql,tomcat的准备工作
    Core Java笔记
    随机森林简介
    Linux 查看操作系统版本
    RNA_seq GATK 最佳实践
  • 原文地址:https://www.cnblogs.com/xiaobo68688/p/2368770.html
Copyright © 2011-2022 走看看