Strategy
是屬於設計模式中
物件行爲型模式
,
主要是定義一系列的演算法
,
把這些演算法一個個封裝成單獨的類別。
Stratrgy
應用比較廣泛
,
比如
,
公司經營業務變化圖
,
可能有兩種實現方式
,
一個是線條曲線
,
一個是框圖
(bar),
這是兩種演算法
,
可以使用
Strategy
實現。
這裏以字串替代爲例
,
有一個文件
,
我們需要讀取後
,
希望替代其中相應的變數
,
然後輸出。關於替代其中變數的方法可能有多種方法
,
這取決於用戶的要求
,
所以我們要準備幾套變數字元替代方案。
首先
,
我們建立一個抽象類別
RepTempRule
定義一些公用變數和方法
:
public abstract class RepTempRule{
protected String oldString="";
public void setOldString(String oldString){
this.oldString=oldString;
}
protected String newString="";
public String getNewString(){
return newString;
}
public abstract void replace() throws Exception;
}
|
在
RepTempRule
中
有一個抽象方法
abstract
需要繼承明確
,
這個
replace
裏其實是替代的具體方法。
我們現在有兩個字元替代方案
,
1.
將文本中
aaa
替代成
bbb;
2.
將文本中
aaa
替代成
ccc;
對應的類別分別是
RepTempRuleOne RepTempRuleTwo
public class RepTempRuleOne extends RepTempRule{
public void replace() throws Exception{
//replaceFirst
是
jdk1.4
新特性
newString=oldString.replaceFirst("aaa", "bbbb")
System.out.println("this is replace one");
}
}
|
public class RepTempRuleTwo extends RepTempRule{
public void replace() throws Exception{
newString=oldString.replaceFirst("aaa", "ccc")
System.out.println("this is replace Two");
}
}
|
至此我們完成了類別圖的設計和程式編制。呼叫如下
:
public class test{
......
public void testReplace(){
//
使用第一套方案進行替換。
RepTempRule rule=new RepTempRuleOne();
rule.setOldString(record);
rule.replace();
}
.....
}
|
實際整個
Strategy
的核心部分就是抽象類別的使用
,
使用
Strategy
模式可以在用戶需要變化時
,
修改量很少
,
而且快速。
Strategy
和
Factory
有一定的類似
,Strategy
相對簡單容易理解。
Strategy
適合下列場合
:
1.
以不同的格式保存文件
;
2.
以不同的演算法壓縮文件
;
3.
以不同的演算法截獲圖像
;
4.
以不同的格式輸出同樣資料的圖形
,
比如曲線
或框圖
bar
等
首先
,
我們建立一個抽象類別
RepTempRule
定義一些公用變數和方法
:
public abstract class RepTempRule{
protected String oldString="";
public void setOldString(String oldString){
this.oldString=oldString;
}
protected String newString="";
public String getNewString(){
return newString;
}
public abstract void replace() throws Exception;
}
|
在
RepTempRule
中
有一個抽象方法
abstract
需要繼承明確
,
這個
replace
裏其實是替代的具體方法。
我們現在有兩個字元替代方案
,
1.
將文本中
aaa
替代成
bbb;
2.
將文本中
aaa
替代成
ccc;
對應的類別分別是
RepTempRuleOne RepTempRuleTwo
public class RepTempRuleOne extends RepTempRule{
public void replace() throws Exception{
//replaceFirst
是
jdk1.4
新特性
newString=oldString.replaceFirst("aaa", "bbbb")
System.out.println("this is replace one");
}
}
|
public class RepTempRuleTwo extends RepTempRule{
public void replace() throws Exception{
newString=oldString.replaceFirst("aaa", "ccc")
System.out.println("this is replace Two");
}
}
|
至此我們完成了類別圖的設計和程式編制。呼叫如下
:
public class test{
......
public void testReplace(){
//
使用第一套方案進行替換。
RepTempRule rule=new RepTempRuleOne();
rule.setOldString(record);
rule.replace();
}
.....
}
|
實際整個
Strategy
的核心部分就是抽象類別的使用
,
使用
Strategy
模式可以在用戶需要變化時
,
修改量很少
,
而且快速。
Strategy
和
Factory
有一定的類似
,Strategy
相對簡單容易理解。
Strategy
適合下列場合
:
1.
以不同的格式保存文件
;
2.
以不同的演算法壓縮文件
;
3.
以不同的演算法截獲圖像
;
4.
以不同的格式輸出同樣資料的圖形
,
比如曲線
或框圖
bar
等
相关推荐
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件设计中,有时我们需要根据不同的场景或条件选择不同的算法或行为。策略模式允许我们将这些算法封装成独立的类,每个类代表一种策略,然后在运行...
C#面向对象设计模式 (行为型模式) Strategy 策略模式 视频讲座下载
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在C++中,策略模式通常通过定义一系列算法类并让它们之间可以互换来实现。这些算法类都实现了一个公共接口,使得它们可以被相同的客户端代码调用,而...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,我们经常遇到需要根据不同的条件或时间点执行不同算法的情况。策略模式提供了一种灵活的方式来处理这种情况,通过将每种算法封装为一个...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在C#中,策略模式经常被用来解决复杂的问题,特别是在需要动态切换算法或行为的场景下。它通过将算法封装到具有独立接口的类中,使得算法可以互相替换...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件设计中,我们经常遇到需要在不同时间或根据不同条件使用不同算法的情况。策略模式允许我们将算法封装到独立的可互换的策略类中,从而使它们可以...
设计模式之策略模式 鸭子问题 策略模式是一种经典的设计模式,通过鸭子问题,可以让学习者更好地了解设计模式的概念和实现。策略模式的主要思想是定义一系列的算法,并将每一个算法封装起来,使它们可以相互替换。...
《行为模式:Head First 设计模式中的策略模式》 策略模式是设计模式中的一种行为模式,它使我们能够在运行时改变对象的行为。在面向对象设计中,策略模式提供了一种方式来封装一系列算法,并使它们可以互相替换,...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,我们经常遇到需要根据不同的条件或时间点执行不同算法的情况。策略模式提供了一种将算法族封装到各自独立的类中,并让它们之间可以互相...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。这种模式允许你使用算法族,而无需在代码中硬编码这些算法。通过将算法封装到具有共同接口的独立对象中,策略模式使得你可以根据需要灵活地切换算法,...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java中,策略模式是通过定义一系列算法,并将每个算法封装起来,使它们可以相互替换,让算法独立于使用它的客户而变化。这种模式在Android开发中...
这份文档讲诉了设计模式之策略(Strategy)模式,希望可以帮助学习的人!
创建模式: 设计模式之Factory 设计模式之Prototype(原型) 设计模式之Builder 设计模式之Singleton(单态) ...设计模式之Strategy(策略) 设计模式之Mediator(中介者) 设计模式之Interpreter(解释器) 设计模式之Visitor
2、爪哇语言抽象工厂创立性模式介绍 3、工厂方法创立性模式介绍 4、单态创立性模式介绍 5、单态创立性模式介绍 6、观察者模式介绍7、责任链模式 8、设计模式之Observer 9、设计模式之Strategy(策略) 10、设计模式之...
策略模式(Strategy)是软件设计模式中的一种行为模式,它使你能在运行时改变对象的行为。在Java中,策略模式通常涉及定义一系列算法,并将每个算法封装起来,使得它们可以相互替换,同时使得算法的变化独立于使用它...