本篇内容主要讲解“web策略模式解决了什么问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“web策略模式解决了什么问题”吧!
效果
一般来讲,大部分程序的处理也可以看作是数据处理,而数据处理的过程又可以分为输入数据、处理数据和输出数据的过程。策略模式着重解决的就是处理数据的选择和扩展问题。
处理数据的方式的变化首先可以是处理方式的选择。这种情况下通常会有几种已知的方式可供选择。以贷款利息计算为例,一般有等额本息和等额本金两种方式,具体选哪种由合同双方约定。类似这样的选择处理在代码中通常是一个选择语句。程序用于的选择决定进入哪个分支。每次增加计算方法的时候,都需要修改判断语句以增加另外的选项。即使除此之外的所有代码和这种变更毫无关联也是如此。
当需要扩展功能的时候还有一个可选的方式。还是前面的例子,我们可以将处理过程分解,将处理数据的部分从事前准备,事后处理中分离出来,独立成一个抽象的方法。这样每次需要增加新的处理方式时,只要派生出一个新类并实现抽象方法就可以了。这种情况下派生类和基类之间是[is a]关系。这种方式的问题就是派生类的内容虽然可能只包含数据处理的内容,但是这部分内容是作为基类处理的一部分存在,没有办法运用到其它场合。另外一点就是如果数据处理类还需要其他方面的扩展,派生类的数量就会大量增加。
第三种方式就是使用策略模式,第一步仍然是将处理过程分解,将真正的数据处理从事前准备、事后处理中分离出来。接下来的做法略有不同,策略模式是将数据处理部分独立成一个策略类。当需要选择或者扩展数据处理方式时,只要替换策略类就可以了。这种情况下整个数据处理类和策略类之间是[has a]关系。它的好处在于策略部分独立于整个数据处理类而存在,方便替换、扩展的同时还可以不加任何修改地运用到其它场合。
到此,相信大家对“web策略模式解决了什么问题”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。