策略模式

策略模式和工厂模式有类似之处,但是策略模式引入了一个类似于智囊的东西来存储实现类的接口对象,做到了进一步的解耦,虽然只是小小的改动,但是看起来却觉得清晰了很多,首先,先上接口类的代码:
![S{53MKR_[TTWHHGTO@)_AI.png
注释已经写得很明白了,就不多做解释.
接下来是四个计算类,依次是加减乘除

策略模式_第1张图片
Paste_Image.png

策略模式_第2张图片
Paste_Image.png

策略模式_第3张图片
Paste_Image.png

策略模式_第4张图片
Paste_Image.png

他们都实现了MathStrategy接口,并且都有自己一套单独的逻辑来处理,当然这里只是简单的加减乘除.通过调用calculate方法得到结果,接下来就是扮演智囊角色的类了
策略模式_第5张图片
Paste_Image.png

里面很多注释加入了我自己的想法,可能你会觉得不以为然,没关系,条条大道通罗马,不管怎么理解,效果达到就好.
或者我们还可以这么拓展,PackStrategy我们可以做成单例,这样会不会更省性能呢,设计模式的路还有很远,慢慢努力吧

你可能感兴趣的:(策略模式)