一、结论
工厂模式:工厂方法模式让一个类实例化延迟到其子类。
策略模式:策略模式让算法可以独立于使用它的客户而变化。
工厂模式人话:只管帮你建,不管你咋用。
策略模式人话:只管帮你用,不管你咋建。
二、正文
1.UML图(由IDEA生成)
工厂模式:
策略模式:
2.代码
github完整代码
工厂模式client main代码:
蓝框内是工厂负责的内容,即帮client创建对象。红框内调用CashStrategy的acceptCash方法是需要client自己负责的。
策略模式client main代码:
蓝框内是策略模式负责的内容,即帮助client使用Strategy对象(通过Conetxtd的acceptCash()调用Strategy的acceptCash()),但具体的Strategy对象需要client自己通过各种方法获得即红框中的内容。