策略模式和工厂模式有类似之处,但是策略模式引入了一个类似于智囊的东西来存储实现类的接口对象,做到了进一步的解耦,虽然只是小小的改动,但是看起来却觉得清晰了很多,首先,先上接口类的代码:




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

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