Java设计模式学习笔记1

xiaoxiao2021-02-28  62

简单工厂模式和策略模式

简单工厂模式和策略模式 简单工厂模式策略模式

简单工厂模式

用最简单加减法来举例: 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);

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

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

转载请注明原文地址: https://www.6miu.com/read-79219.html

最新回复(0)