淡泊明志 宁静致远
宠辱不惊 闲看庭前花开花落 去留无意 漫随天外云卷云舒
博客园
首页
新随笔
新文章
联系
订阅
管理
posts - 19,comments - 13,trackbacks - 0
<
2008年1月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
在成功的道路上,
如果你没有耐心去等待成功的到来,
那么你只好用一生的耐心去面对失败。
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
我参与的团队
北京.NET俱乐部(2/1447)
保定.NET俱乐部(0/25)
我的标签
c#
(8)
.Net
(7)
设计
(6)
模式
(6)
GET
(3)
POST
(3)
请求web
(1)
web
(1)
数据
(1)
快乐
(1)
更多
随笔分类
C#学习(5)
Delphi学习(1)
Head First 设计模式 读书摘记(5)
SQL学习(3)
WebService学习(1)
读书(7)
管理心得(3)
设计模式学习(1)
随笔档案
2008年5月 (4)
2008年4月 (1)
2008年3月 (3)
2008年2月 (2)
2008年1月 (9)
最新评论
1. re: [转]C# 向web网站GET、POST 数据
gb2312编码方式有C++版吗?
--企业即时通讯
阅读排行榜
1. 转载:动态调用WebService(C#)(443)
2. Head First 设计模式 读书摘记(五) 简单工厂模式 C#代码 (309)
3. 2007年从当当网所购图书(301)
4. Head First 设计模式 读书摘记(三) 观察者模式 C#代码(301)
5. Extending SQL 2005 Fulltext Search (转载)(265)
评论排行榜
1. 2007年从当当网所购图书(3)
2. Head First 设计模式 读书摘记(三) 观察者模式 C#代码(2)
3. 感悟(转载)(2)
4. 见“利”忘“义”???(2)
5. [美]杰克·韦尔奇《赢》摘记(1)
Head First 设计模式 读书摘记(二) 策略模式 C#代码
策略模式:
定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
Strategy_Pattern
1
using
System;
2
using
System.Collections.Generic;
3
using
System.Text;
4
5
namespace
Strategy_Pattern
6
{
7
class
Program
8
{
9
static
void
Main(
string
[] args)
10
{
11
Duck duck
=
new
RedheadDuck();
12
13
duck.display();
14
15
duck.performFly();
16
duck.performQuack();
17
IFlyBehavior fly;
18
IQuackBehavior quack;
19
fly
=
new
FlyNoWay();
20
quack
=
new
Squack();
21
duck.setFlyBehavior(fly);
22
duck.setQuackBehavior(quack);
23
duck.performFly();
24
duck.performQuack();
25
26
fly
=
new
FlyRocketPowered();
27
quack
=
new
MuteQuack();
28
duck.setFlyBehavior(fly);
29
duck.setQuackBehavior(quack);
30
duck.performFly();
31
duck.performQuack();
32
33
}
34
}
35
36
public
interface
IFlyBehavior
//
飞行接口
37
{
38
void
Fly();
39
40
}
41
42
public
class
FlyWithWings : IFlyBehavior
//
用翅膀飞行
43
{
44
public
void
Fly()
45
{
46
Console.WriteLine(
"
I'm fly with wings!!
"
);
47
}
48
}
49
50
public
class
FlyNoWay : IFlyBehavior
//
不能飞行
51
{
52
public
void
Fly()
53
{
54
Console.WriteLine(
"
I can't flying!!
"
);
55
}
56
}
57
58
public
class
FlyRocketPowered : IFlyBehavior
//
用火箭飞行
59
{
60
public
void
Fly()
61
{
62
Console.WriteLine(
"
I'm flying with a rocket!!
"
);
63
}
64
}
65
66
public
interface
IQuackBehavior
//
叫的接口
67
{
68
void
quack();
69
70
}
71
72
public
class
Quack : IQuackBehavior
//
呱呱叫
73
{
74
public
void
quack()
75
{
76
Console.WriteLine(
"
Quack!!!
"
);
77
}
78
}
79
80
public
class
Squack : IQuackBehavior
//
吱吱叫
81
{
82
public
void
quack()
83
{
84
Console.WriteLine(
"
Squack!!!
"
);
85
}
86
}
87
88
public
class
MuteQuack : IQuackBehavior
//
不能叫
89
{
90
public
void
quack()
91
{
92
Console.WriteLine(
"
Mute!!!
"
);
93
}
94
}
95
96
public
abstract
class
Duck
//
鸭子抽象类
97
{
98
IFlyBehavior flyBehavior;
99
IQuackBehavior quackBehavior;
100
101
public
Duck()
102
{
103
flyBehavior
=
new
FlyWithWings() ;
104
quackBehavior
=
new
Quack();
105
}
106
107
public
void
swim()
108
{
109
Console.WriteLine(
"
I'm swimming!!
"
);
110
}
111
112
public
abstract
void
display();
113
114
public
void
performFly()
115
{
116
flyBehavior.Fly();
117
}
118
119
public
void
performQuack()
120
{
121
quackBehavior.quack();
122
}
123
124
public
void
setFlyBehavior(IFlyBehavior fly)
125
{
126
flyBehavior
=
fly;
127
}
128
129
public
void
setQuackBehavior(IQuackBehavior quack)
130
{
131
quackBehavior
=
quack;
132
}
133
134
}
135
136
public
class
RedheadDuck : Duck
//
红头鸭
137
{
138
public
override
void
display()
139
{
140
Console.WriteLine(
"
I'm a redhead duck!!
"
);
141
}
142
}
143
144
}
145
Tag标签:
.Net
,
c#
,
设计
,
模式
posted on 2008-01-08 10:31
RainWaterLily
阅读(48)
评论(0)
编辑
收藏
所属分类:
Head First 设计模式 读书摘记
、
读书
社区
新闻
新用户注册
刷新评论列表
标题
姓名
主页
Email
(只有博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2008-03-13 17:32 编辑过
所属分类的其他文章:
·
Head First 设计模式 读书摘记(五) 简单工厂模式 C#代码
·
Head First 设计模式 读书摘记(四) 装饰者模式 C#代码
·
Head First 设计模式 读书摘记(三) 观察者模式 C#代码
·
Head First 设计模式 读书摘记(二) 策略模式 C#代码
·
Head First 设计模式 读书摘记(一)OO设计原则
最新IT新闻:
·
第一财经周刊:当前互联网世界正处无秩序时代
·
Visual Studio 2008 SDK 1.1 发布
·
死敌VMware变身微软认证计划新成员
·
英特尔雅虎开发网络计算机频道
·
Windows Live视频邮件9月9日开始测试
博客园新闻频道
博客园首页
社区