Java设计模式学习笔记1

简单工厂模式和策略模式

简单工厂模式

用最简单加减法来举例:
Calculate 计算方法接口

public interface Calculate {
    int calculate(int a, int b);
}

分别创建Add以及Sub子类并实现其逻辑

public class Add implements Calculate {
    @Override
    public int calculate(int a, int b) {
        return a+b;
    }
}

public class Sub implements Calculate {
    @Override
    public int calculate(int a, int b) {
        return a-b;
    }
}

创建CalculateFactory工厂类

public class CalculateFactory {

    public static Calculate getCalculateInstance(String sign) {
        switch (sign) {
            case "+":
                return new Add();
            case "-":
                return new Sub();
        }
        return null;
    }

}

客户端中调用Calculate的calculate方法即可实现运算

Calculate calculate=CalculateFactory.getCalculateInstance("+");
calculate.calculate(1,2);

策略模式

同样的以加减法来举例,Calculate 计算方法接口及其子类就不重复了。他们两者的区别,个人感觉还是比较模糊的,如果把 Strategy的Context类同样命名为CalculateFactory,两者的区别可能就变得比较明显了

public class CalculateFactory {

    private Calculate calculate =null;

    public CalculateFactory(String sign){
        switch (sign){
            case "+":
                calculate = new Add();
            case "-":
                calculate = new Sub();
        }
    }

    public int getResult(int a, int b){
       return calculate.calculate(a,b);
    }

}

客户端中调用CalculateFactory的getResult方法即可获取结果

new CalculateFactory("+").getResult(1,2);

纵观两者,都是通过抽象封装了变化。简单工厂模式对不同类的创建的封装;而策略模式则是封装了不同的算法,直接返回所需要的结果。

注:以上纯属个人观点,欢迎指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值