惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
B
Blog RSS Feed
Recent Announcements
Recent Announcements
Vercel News
Vercel News
M
MIT News - Artificial intelligence
阮一峰的网络日志
阮一峰的网络日志
L
LangChain Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Security Blog
Microsoft Security Blog
H
Help Net Security
T
The Blog of Author Tim Ferriss
Y
Y Combinator Blog
G
Google Developers Blog
罗磊的独立博客
爱范儿
爱范儿
宝玉的分享
宝玉的分享
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园_首页
S
SegmentFault 最新的问题
WordPress大学
WordPress大学
月光博客
月光博客
人人都是产品经理
人人都是产品经理
Apple Machine Learning Research
Apple Machine Learning Research

博客园 - yuanws

【终极解决方案】为应用程序池“XXX”提供服务的进程在与 Windows Process Activation Service 通信时出现严重错误。该进程 ID 为“XXXX”。数据字段包含错误号。 html端编码规范 SQL对Xml字段的操作 NOSQL: mongoDB windows 更新webconfig配置文件 SQL Server中存储过程比直接运行SQL语句慢的原因 C#中使用string.Split 用字符串分隔 7个变态问题 答对4个说明你已经变态了,很悬的哦 C#时间函数的用法C#时间格式输出 C#抽象类和抽象方法 子类与父类的方法关系 (虚方法) C#中Invoke的用法 C# Thread Lambda 行变列 case [转]SqlServer四个排名函数(row_number、rank、dense_rank和ntile)的比较 SQL Server2005杂谈(2):公用表表达式(CTE)的递归调用 SQL Server2005杂谈(1):使用公用表表达式(CTE)简化嵌套SQL 改变自己的128种方法 小技巧
程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。(...
yuanws · 2011-10-18 · via 博客园 - yuanws

10. 程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。(C#语言) 要求: 1.要有联动性,老鼠和主人的行为是被动的。 2.考虑可扩展性,猫的叫声可能引起其他联动效应。 public interface Observer { void Response(); //观察者的响应,如是老鼠见到猫的反映 }

public interface Subject { void AimAt(Observer obs); //针对哪些观察者,这里指猫的要扑捉的对象---老鼠 }

public class Mouse : Observer {

private string name;

public Mouse(string name, Subject subj) { this.name = name; subj.AimAt(this); }

public void Response() { Console.WriteLine(name + attempt to escape!); }

}

public class Master : Observer {

public Master(Subject subj) { subj.AimAt(this); }

public void Response() { Console.WriteLine(Host waken!); }

}

public class Cat : Subject {

private ArrayList observers;

public Cat() { this.observers = new ArrayList(); }

public void AimAt(Observer obs) { this.observers.Add(obs); }

public void Cry() {

Console.WriteLine(Cat cryed!);

foreach (Observer obs in this.observers) { obs.Response(); }

}

}

class MainClass {

static void Main(string[] args)

{

 Cat cat = new Cat();

Mouse mouse1 = new Mouse(mouse1, cat);

Mouse mouse2 = new Mouse(mouse2, cat);

Master master = new Master(cat);

cat.Cry();

}

}