设计模式-工厂方法模式-java-中文版

码上见分晓!
中文版本的设计模式详解,案例中的代码尽量使用了中文.
以游戏和生活中较好理解的场景讲解设计模式的实际用法,便于理解吸收,让设计模式的学习不再困难!!!

/**
 * 想要哪个种族的近战兵就使用哪个种族的兵营(工厂)
 */
public class 工厂方法模式主程序 {
    public static void main(String[] args) {
        兵营 兵营 = new 暗夜兵营();
        System.out.println("兵种 = " + getName(兵营.创建(兵种类型.近战兵)));
        System.out.println("兵种 = " + getName(兵营.创建(兵种类型.远程兵)));

        兵营 = new 兽族兵营();
        System.out.println("兵种 = " + getName(兵营.创建(兵种类型.近战兵)));
        System.out.println("兵种 = " + getName(兵营.创建(兵种类型.远程兵)));
    }

    private static String getName(Object 对象) {
        return 对象.getClass().getSimpleName();
    }
}

interface 兵营 {
    兵 创建(兵种类型 兵种类型);
}

class 暗夜兵营 implements 兵营 {
    @Override
    public 兵 创建(兵种类型 类型) {
        if (兵种类型.远程兵.equals(类型)) {
            return new 弓箭手();
        } else if (兵种类型.近战兵.equals(类型)) {
            return new 利爪德鲁伊();
        }
        return null;
    }
}

class 兽族兵营 implements 兵营 {
    @Override
    public 兵 创建(兵种类型 类型) {
        if (兵种类型.远程兵.equals(类型)) {
            return new 猎头者();
        } else if (兵种类型.近战兵.equals(类型)) {
            return new 兽族步兵();
        }
        return null;
    }
}

interface{
}

class 弓箭手 implements{
}

class 利爪德鲁伊 implements{
}

class 猎头者 implements{
}

class 兽族步兵 implements{
}

enum 兵种类型 {
    近战兵,
    远程兵
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值