荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: Mic (酷鱼), 信区: DotNET
标 题: [用设计模式锻炼C#基本功]之Strategy(zz)
发信站: 荔园晨风BBS站 (Tue Apr 1 23:20:23 2003), 站内信件
发信人: simoom (葯鬼), 信区: DotNet
标 题: [合集][用设计模式锻炼C#基本功]之Strategy
发信站: 南京大学小百合站 (Tue Mar 25 10:56:55 2003)
RedStar81 (流刀T'ang) 于Fri Mar 14 09:43:24 2003)
提到:
名称:Strategy
类型:行为型
简介:一般用于多策略解决方式的实现.
本人以为,它的设计思路和Bridge
很象像.然Stratege的焦点是多策略的实现,
而Bridge目的于系统的低耦合性,
当然strategy的特性它亦可实现.
因为它们都是基本依赖于OOP中的多态特性.
它在很多体现多策略的情况下是继承最好的
替代者.
// created on 2003-3-14 at 7:27
using System;
//member: strategy concretestrategy context
interface strategy{
string multi_purpose(string _str);
}
class concretestrategy1:strategy{
public string multi_purpose(string _str)
}
class concretestrategy2:strategy{
public string multi_purpose(string _str)
}
class context{
private strategy _strategy;
{
return _strategy.multi_purpose(m_STRcontext);
}
}
class designpattern_test{
public static void Main(){
"1.quick but not pricition.\n"+
"2.pricition but not quick.\n"+
"1 or 2?\n");
for(;;){
"1.quick but not pricition.\n"+
"2.pricition but not quick.\n"+
"1 or 2?\n");
}
}
点评:
1.首先还是C#的接口的原生支持interface.
我们需要知道继承类对它的签名方法的实现
必须是public.关于本人对它的看法详见bridge篇.
2.顺便提及:C#不在支持初始化列表和默认参数的行为.
3.其它关于很多实现机制原理同于Bridge.
扩展:
1.在设计中,可针对strategy和context信息交互的实际情况酌情进行
耦合度的调整.
2.在context中构置默认的concretestrategy,在用户没有特殊要求的
情况下,提高概率意义上的性能提高.
3.在具体的实现上,可以用模板来实现:
template<typename concretestrategy>
class context{
private concretestrategy _strategy;
public string operation(string m_STRcontext){
return _strategy.multi_method(m_STRcontext);
}
}
Ninputer (装配脑袋 之 缠上衰神) 于Fri Mar 14 10:40:03 2003)
提到:
VB.net支持初始化列表和默认参数
如果你愿意,可以用VB.net实现更接近的版本
【 在 RedStar81 (流刀T'ang) 的大作中提到: 】
: 名称:Strategy
: 类型:行为型
: 简介:一般用于多策略解决方式的实现.
: 本人以为,它的设计思路和Bridge
: 很象像.然Stratege的焦点是多策略的实现,
: 而Bridge目的于系统的低耦合性,
: 当然strategy的特性它亦可实现.
: 因为它们都是基本依赖于OOP中的多态特性.
: 它在很多体现多策略的情况下是继承最好的
: 替代者.
:
: // created on 2003-3-14 at 7:27
:
: using System;
: //member: strategy concretestrategy context
: interface strategy{
: string multi_purpose(string _str);
: }
:
: class concretestrategy1:strategy{
: (以下引言省略 ... ...)
RedStar81 (流刀T'ang) 于Fri Mar 14 12:09:19 2003)
提到:
~he~~he~~he
本人声明不知兄弟你看清没有.
而且兄弟我VB 6.0好象也写过几个不算小的项目.
【 在 Ninputer 的大作中提到: 】
: VB.net支持初始化列表和默认参数
: 如果你愿意,可以用VB.net实现更接近的版本
: 【 在 RedStar81 (流刀T'ang) 的大作中提到: 】
: (以下引言省略...)
looluo (東東) 于Fri Mar 14 12:10:11 2003)
提到:
呵呵
有人喜欢VB.net没办法
【 在 RedStar81 的大作中提到: 】
:
: ~he~~he~~he
: 本人声明不知兄弟你看清没有.
:
: 【 在 Ninputer 的大作中提到: 】
RedStar81 (流刀T'ang) 于Fri Mar 14 12:15:56 2003)
提到:
而且,说句实话,偶虽然声明是改写
那只不过是因为本人学模式是通过网上教程学的,偶不敢居功
而且好象偶的资料基本上都有错误
譬如COM集中营那COM老兄我佩服的紧
可是他的BUILDER模式理解好象是有问题的
偶随便帮忙纠正一下贴出,且不是好
【 在 Ninputer 的大作中提到: 】
: VB.net支持初始化列表和默认参数
: 如果你愿意,可以用VB.net实现更接近的版本
: 【 在 RedStar81 (流刀T'ang) 的大作中提到: 】
: (以下引言省略...)
Rodimus (补天士) 于Fri Mar 14 15:04:54 2003)
提到:
你的意思是说你小看VB.net吗?
【 在 looluo 的大作中提到: 】
: 呵呵
: 有人喜欢VB.net没办法
: 【 在 RedStar81 的大作中提到: 】
NightElvs (暗夜精灵) 于Sun Mar 16 14:52:35 2003)
提到:
呵呵,我就不喜欢VB.Net
:P
【 在 Rodimus 的大作中提到: 】
: 你的意思是说你小看VB.net吗?
:
:
: 【 在 looluo 的大作中提到: 】
Achengwor (无语立斜阳) 于Mon Mar 17 17:48:15 2003)
提到:
、
【 在 RedStar81 的大作中提到: 】
: 名称:Strategy
: 类型:行为型
: 简介:一般用于多策略解决方式的实现.
: 本人以为,它的设计思路和Bridge
: 很象像.然Stratege的焦点是多策略的实现,
: 而Bridge目的于系统的低耦合性,
: 当然strategy的特性它亦可实现.
: 因为它们都是基本依赖于OOP中的多态特性.
: 它在很多体现多策略的情况下是继承最好的
: 替代者.
:
: // created on 2003-3-14 at 7:27
:
: using System;
: //member: strategy concretestrategy context
: interface strategy{
: string multi_purpose(string _str);
: }
:
: class concretestrategy1:strategy{
: (以下引言省略...)
raint (啊呜~无所事事) 于Mon Mar 17 20:01:44 2003)
提到:
re
--
你“唰”的一声抽出一个饭盒握在手中.
>kill da chu
你对大厨喝道:“臭贼!今天不是你死就是我活!放聪明点给我四两!”
看起来大厨似乎想杀死你!
你往南落荒而逃了。
仓皇之间,你丢下一张金龙卡。
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.28.220]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店