策略模式
定义一系列算法将它们封装起来,并且可以相互替换;
使用场景
java awt的布局管理器;
如果一个系统有许多类,它们之间的区别仅在于它们的行为,那么可以使用策略模式;
角色
context上下文:屏蔽高层模块对策略算法的直接访问,封装可能存在的变化;
strategy:抽象策略角色,对策略、算法家族的抽象,定义每个策略或者算法必须具有的方法和属性;
concreteStrategy:具体策略角色,用于实现抽象策略中的操作。
优点
符合开闭原则,新加具体策略时不用修改代码;
避免使用多重条件判断,可以和工厂模式搭配使用;
缺点
策略类会增多,每一个类都是一种策略。
jdk源码应用
Comparator接口常用的compare()方法,就是一个策略实际模式的应用,把Comparator作为参数使用生成不同的排序策略。
标签:策略,Comparator,模式,算法,抽象,使用 来源: https://www.cnblogs.com/menbo/p/15972335.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。