设计模式漫谈之观察者模式
人应该自信点,因为在某个方面,你无人可取代。做事,做人都要有底线,一件事的底线是什么,做人的底线是什么,做事的底线要符合做人的底线。这些事都要清楚。
工作要努力,对你最直接的回馈,就是努力工作所应得的报酬。做人要积极上进,(欲望驱使,兴趣驱使,职业规划,人生态度,生活态度驱使等等)
我今年的计划,是在工作之余把.net整个体系,及计算机整个体系再温故一下。
现在还说设计模式,因为设计模式是思想上的东西,我这个人在文章中爱扯思想,生活上的事。因为我真的不怕孤独。孤独的时候,我在思考,在和自己对话。
算法是玩变量的,面向对象是玩引用的。
通知是要通知你需要干什么,干什么的
设计模式也是现实事物的抽象描述
事件发生了,必须有方法处理。
直接上例子:
interface Subject
{
//从接口意思上可以看出,我通知的时候把我的状态传过去
void Notify();
string SubjectState
{
get;
set;
}
}
//委托定义了一类方法
delegate void EventHandler();
class Boss : Subject
{
//事件是属于对象的
//我发生一个事件,把我的状态传过去
public event EventHandler Update;
private string action;
public void Notify()
{
Update();
}
public string SubjectState
{
get { return action; }
set { action = value; }
}
}
//
class StockObserver
{
private string name;
//我能访问到发布者(通知者)
private Subject sub;
public StockObserver(string name, Subject sub)
{
this.name = name;
this.sub = sub;
}
public void CloseStockMarket()
{
Console.WriteLine("{0} {1} 关闭股票行情,继续工作!", sub.SubjectState, name);
}
}
Boss huhansan = new Boss();
StockObserver tongshi1 = new StockObserver("魏关姹", huhansan);
//我关注通知者的事件,
//上有政策下有对策
huhansan.Update += new EventHandler(tongshi1.CloseStockMarket);
huhansan.SubjectState = "我胡汉三回来了!";
//当我触发事件是,关注者就有对策执行。
huhansan.Notify();
总结,还是那句话,编程靠思想,观察者模式和订阅发布是类似的。也是描述现实中的事物。晚上去开封逛逛小吃街。
不能追求完美了,要不停的持续的优化,尽快设计个产品出来。加油!