码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式课程 设计模式精讲 19-1 策略模式讲解

时间:2019-09-28 14:45:48      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:dash   需要   实现   指令   策略   动态   style   das   height   


1    课程讲解

1.1  类型:

1.2  定义:

1.3  适用场景:

1.4  优点:

1.5  缺点:

1.6  与其他设计模式关系:

 

 

 

 


1    课程讲解
1.1  类型:

行为型

 

1.2  定义:

定义:定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化不会影响到使用算法的用户。
if...else..…

 

扩展:

使用算法的用户就是应用层,我们把不同的算法封装到不同的类中,让她们之间可以相互替换。

如田忌赛马,满减等

大量的if else可以消除掉,

 

1.3  适用场景:

系统有很多类,而他们的区别仅仅在于他们的行为不同

一个系统需要动态地在几种算法中选择一种

扩展:把对象的不同行为放到不同的类中,她有很多行为类,每一种类对应每一种行为。

如:两个数 加法策略,减法策略,乘法策略,除法策略等等

 

1.4  优点:

开闭原则
避免使用多重条件转移语句(if else switch)
提高算法的保密性和安全性

 

1.5  缺点:

客户端必须知道所有的策略类,并自行决定使用哪一个策略类。
产生很多策略类

 

1.6  与其他设计模式关系:

◆策略模式和工厂模式

后者是创建型的,前者是行为型的。

后者接收指令,创建出符合要求的对象,前者接收已经创建好的对象,从而实现不同的行为。


◆策略模式和状态模式

前者客户端需要知道我们使用的哪个策略,后者客户端不需要知道具体的状态,且状态会自动转换。

 

设计模式课程 设计模式精讲 19-1 策略模式讲解

标签:dash   需要   实现   指令   策略   动态   style   das   height   

原文地址:https://www.cnblogs.com/1446358788-qq/p/11602525.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!