- 浏览: 301619 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
tacyuuhon:
这个代码就有问题。当前的 int activeSessions ...
HttpSessionListener统计在线人数 -
yangleilt:
唉。。能通俗的说一下不?你说的这些百科上到处都是的!
LDAP是什么? -
hezhou_0521:
你显示正确了吗?
HttpSessionListener统计在线人数 -
sevk:
我喜欢用vim或gvim,比Ultra Edit 顺手
让Ultra Edit和Keil结合的更紧密
Strategy是屬於設計模式中 物件行爲型模式,主要是定義一系列的演算法,把這些演算法一個個封裝成單獨的類別。
Stratrgy應用比較廣泛,比如, 公司經營業務變化圖, 可能有兩種實現方式,一個是線條曲線,一個是框圖(bar),這是兩種演算法,可以使用Strategy實現。
這裏以字串替代爲例, 有一個文件,我們需要讀取後,希望替代其中相應的變數,然後輸出。關於替代其中變數的方法可能有多種方法,這取決於用戶的要求,所以我們要準備幾套變數字元替代方案。
首先,我們建立一個抽象類別RepTempRule 定義一些公用變數和方法:
public abstract class RepTempRule{ |
在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 class test{ ...... public void testReplace(){ //使用第一套方案進行替換。 } ..... } |
實際整個Strategy的核心部分就是抽象類別的使用,使用Strategy模式可以在用戶需要變化時,修改量很少,而且快速。
Strategy和Factory有一定的類似,Strategy相對簡單容易理解。
Strategy適合下列場合:
1.以不同的格式保存文件;
2.以不同的演算法壓縮文件;
3.以不同的演算法截獲圖像;
4.以不同的格式輸出同樣資料的圖形,比如曲線 或框圖bar等
首先,我們建立一個抽象類別RepTempRule 定義一些公用變數和方法:
public abstract class RepTempRule{ |
在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 class test{ ...... public void testReplace(){ //使用第一套方案進行替換。 } ..... } |
實際整個Strategy的核心部分就是抽象類別的使用,使用Strategy模式可以在用戶需要變化時,修改量很少,而且快速。
Strategy和Factory有一定的類似,Strategy相對簡單容易理解。
Strategy適合下列場合:
1.以不同的格式保存文件;
2.以不同的演算法壓縮文件;
3.以不同的演算法截獲圖像;
4.以不同的格式輸出同樣資料的圖形,比如曲線 或框圖bar等
发表评论
-
第四篇:设计模式与Struts介绍篇
2004-06-24 07:02 713严重警告:只关心程序的人请跳过<o:p></ ... -
设计模式之Factory
2004-06-24 19:47 588定义:提供创建对象的接口. 为何使用?工厂模式是我们最常用的模 ... -
設計模式之Prototype(原型)
2004-06-24 19:48 638定義:用原型實例指定創建物件的種類,並且通過拷貝這些原型創建新 ... -
设计模式之Singleton(单态)
2004-06-24 19:49 293定义:Singleton模式主要作用是保证在Java应用程序中 ... -
設計模式之Builder
2004-06-24 19:49 578Builder模式定義:將一個 ... -
設計模式之Facade(外觀)
2004-06-24 19:50 494Facade的定義: 爲子系統中的一組介面提供一個一致的介面。 ... -
設計模式之Proxy(代理)
2004-06-24 19:51 735理解並使用設計模式,能夠培養我們良好的面向物件編程習慣,同時在 ... -
設計模式之Adapter(適配器)
2004-06-24 19:52 587定義:將兩個不相容的類別糾合在一起使用,屬於結構型模式,需要有 ... -
設計模式之Composite(組合)
2004-06-24 19:53 562Composite定義:將物件以樹 ... -
設計模式之Decorator(油漆工)
2004-06-24 19:54 652Decorator常被翻譯成"裝飾",我覺 ... -
設計模式之Bridge
2004-06-24 19:55 567Bridge定義 :將抽象和行為劃分開來,各自獨立,但能動態的 ... -
設計模式之Template
2004-06-24 19:57 547Template定義:定義一個操作中演算法的骨架,將一些步驟的 ... -
設計模式之Flyweight(享元)
2004-06-24 19:57 574Flyweight定義:避免大量擁有相同內容的小類別的開銷(如 ... -
設計模式之Memento(備忘機制)
2004-06-24 19:58 568Memento定義:memento是一個保存另外一個物件內部狀 ... -
設計模式之Observer
2004-06-24 20:06 644Java深入到一定程度,就 ... -
設計模式之Command
2004-06-24 20:07 592Command模式是最讓我疑惑的一個模式,我在閱讀了很多代碼後 ... -
設計模式之Chain of Responsibility(職責鏈)
2004-06-24 20:07 594Chain of Responsibility定義Ch ... -
設計模式之State
2004-06-24 20:09 654State的定義: 不同的狀態,不同的行爲;或者說,每個狀態有 ... -
設計模式之Mediator(仲介者)
2004-06-24 20:12 572Mediator定義:用一個仲介物件來封裝一系列關於物件交互行 ... -
設計模式之Visitor
2004-06-24 20:13 602Visitor定義作用於某個物件群中各個物件的操作。 它可以使 ...
相关推荐
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件设计中,有时我们需要根据不同的场景或条件选择不同的算法或行为。策略模式允许我们将这些算法封装成独立的类,每个类代表一种策略,然后在运行...
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中,策略模式通常涉及定义一系列算法,并将每个算法封装起来,使得它们可以相互替换,同时使得算法的变化独立于使用它...