设计模式-静态代理模式-java-中文版

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

https://gitee.com/nightrunner/chinese-version-of-design-patterns

import java.util.ArrayList;
import java.util.List;

/**
 * 我来帮你管理地洞里放几个人!
 */
class 静态代理模式主程序 {
    public static void main(String[] args) {
        兽族地洞静态代理 代理 = new 兽族地洞静态代理(new 兽族地洞());
        代理.放入一个单位(new 兽族苦工());
        代理.放入一个单位(new 兽族苦工());
        代理.放入一个单位(new 兽族苦工());
        代理.放入一个单位(new 兽族苦工());
        代理.放入一个单位(new 兽族苦工());
        代理.放入一个单位(new 兽族苦工());
        代理.放入一个单位(new 兽族苦工());
    }
}

class 兽族地洞静态代理 implements 魔兽容器接口<兽族苦工> {

    private 魔兽容器接口 地洞;

    public 兽族地洞静态代理(魔兽容器接口 地洞) {
        this.地洞 = 地洞;
    }

    @Override
    public void 放入一个单位(兽族苦工 兽族苦工) {
        if (地洞.获取单位们().size() <= 3) {
            地洞.放入一个单位(兽族苦工);
        } else {
            System.out.println("不能在加入更多的苦工啦");
        }
    }

    @Override
    public List<兽族苦工> 获取单位们() {
        return 地洞.获取单位们();
    }


    @Override
    public Integer 获取最大容量() {
        return 4;
    }
}

class 兽族地洞 implements 魔兽容器接口<兽族苦工> {

    List<兽族苦工> 苦工们 = new ArrayList<>();

    @Override
    public void 放入一个单位(兽族苦工 兽族苦工) {
        苦工们.add(兽族苦工);
        System.out.println("成功放入一个单位");
    }

    @Override
    public List<兽族苦工> 获取单位们() {
        return 苦工们;
    }

    @Override
    public Integer 获取最大容量() {
        return 4;
    }
}

class 兽族苦工 implements 魔兽单位接口 {
    @Override
    public Integer 获取单位体积() {
        return 1;
    }
}

interface 魔兽容器接口<T> {
    void 放入一个单位(T 魔兽单位);

    List<T> 获取单位们();

    Integer 获取最大容量();
}

interface 魔兽单位接口 {
    Integer 获取单位体积();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值