[java之设计模式]策略模式

策略模式(strategy pattern)

定义>>

将一系列的算法封装到一些列的类里面,并且可以相互替换

作用>>

将算法的变化独立与客户端,将算法的指责和算法的行为分开,将算法的使用和具体的算法流程区分开

组成>>

策略类:封装了一个算法实现;一般只暴漏一个方法供其它地方调用,比如排序,查找,计算折扣等等
抽象策略类:既然一种算法代表一个策略类,那么多种算法就需要定义多个策略类,这些策略类的共性是只暴漏了一个方法,而且算法的职责是相似的,算法的步骤可能是大不相同的。这个时候就可以定义一个抽象的策略类(可以是抽象类,也可以是个接口),来包装各个策略类,而这些策略类也需要集成/抽象定义好的抽象策略类 。

图例>>

uploading-image-430955.png

猜你喜欢

转载自www.cnblogs.com/nolan4954/p/9977412.html