荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: 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软件 网络书店