设计模式学习笔记-策略模式
2017-03-13 09:32
465 查看
公司项目需要重构,这几天就为这个事情发愁,就准备再把设计模式在学习一遍。人都说学了就要总结和应用。我这里就把我的总结卸载博客里。也可以帮助记忆,和大家分享我的学习旅程。
设计模式就是把前辈们走过的路都绘制成地图。我们循着这些路可以更快的到达自己的目的地。今天我就把刚学的策略模式的学习历程记录一下。
策略模式:定义一系列算法,并把每一个算法封装起来,他们之间可以相互替换。策略模式让算法独立于使用它的客户而独立变化。------定义有一些绕口我白话的说一下吧。就是说一系列算法(可以是一些行为)这些算法被客户使用时根据客户直接选择当中的某一个算法。通过一个的接口或抽象类,把这些算法给屏蔽起来。哎呀,本人学历有限,可能没讲明白,那我就把自己理解的UML图来标识吧。
策略模式UML
大概根据这个UML类图说说吧:算法接口被抽象类调用,在子类object_A中可以通过构造对ialgorithm进行固定初始化:
ialgorithm = new Algorithm_1();
实现抽象方法中的Set_ialgorithm(IAlgorithm)可以对ialgorithm对象进行动态更改:
public override void ialgorithm(IAlgorithm temp)
{
ialgorithm = new Algorithm_2();
}
对象调用ialgorithm的display()方法时就可以有不同的行为了。
object_A test = new object_A(Algorithm_1);
test.ialgorithm.display();
test.Set_ialgorithm(Algorithm_2);
test.ialgorithm.display();
策略模式就把算法的实现和客户独立开来了,还可以动态的替换算法。
三个原则:
封装变化,多用组合少用集成,针对接口进行编程,把变化隔离开来。
设计模式就是把前辈们走过的路都绘制成地图。我们循着这些路可以更快的到达自己的目的地。今天我就把刚学的策略模式的学习历程记录一下。
策略模式:定义一系列算法,并把每一个算法封装起来,他们之间可以相互替换。策略模式让算法独立于使用它的客户而独立变化。------定义有一些绕口我白话的说一下吧。就是说一系列算法(可以是一些行为)这些算法被客户使用时根据客户直接选择当中的某一个算法。通过一个的接口或抽象类,把这些算法给屏蔽起来。哎呀,本人学历有限,可能没讲明白,那我就把自己理解的UML图来标识吧。
策略模式UML
大概根据这个UML类图说说吧:算法接口被抽象类调用,在子类object_A中可以通过构造对ialgorithm进行固定初始化:
ialgorithm = new Algorithm_1();
实现抽象方法中的Set_ialgorithm(IAlgorithm)可以对ialgorithm对象进行动态更改:
public override void ialgorithm(IAlgorithm temp)
{
ialgorithm = new Algorithm_2();
}
对象调用ialgorithm的display()方法时就可以有不同的行为了。
object_A test = new object_A(Algorithm_1);
test.ialgorithm.display();
test.Set_ialgorithm(Algorithm_2);
test.ialgorithm.display();
策略模式就把算法的实现和客户独立开来了,还可以动态的替换算法。
三个原则:
封装变化,多用组合少用集成,针对接口进行编程,把变化隔离开来。
相关文章推荐
- java 设计模式 学习笔记(4) 策略模式
- HeadFirst 设计模式学习笔记1--策略模式
- 设计模式学习笔记(六)之策略模式(Strategy)
- 设计模式学习笔记二:Strategy,策略模式
- 设计模式学习笔记之策略模式
- 设计模式学习笔记--Strategy 策略模式
- 设计模式学习笔记(5) - 策略模式
- 《Head First 设计模式》学习笔记:策略模式与观察者模式
- Head First_设计模式_学习笔记_第01章_策略模式
- 设计模式学习笔记(六)之策略模式(Strategy)
- 设计模式学习笔记二【策略模式】
- HeadFirst 设计模式学习笔记1--策略模式
- 二 策略模式——设计模式学习笔记
- java 设计模式学习笔记十五 strategy 策略设计模式
- 步步为营 .NET 设计模式学习笔记 三、Strategy(策略模式)
- 设计模式学习笔记(二):策略模式
- 学习笔记 ---- 设计模式之策略模式
- 步步为营 .NET 设计模式学习笔记 三、Strategy(策略模式)
- 设计模式学习笔记一 简单工厂策略模式实现销售策略的变更(一)
- 设计模式学习笔记-策略模式