zoukankan      html  css  js  c++  java
  • 设计模式漫谈之观察者模式

    人应该自信点,因为在某个方面,你无人可取代。做事,做人都要有底线,一件事的底线是什么,做人的底线是什么,做事的底线要符合做人的底线。这些事都要清楚。

    工作要努力,对你最直接的回馈,就是努力工作所应得的报酬。做人要积极上进,(欲望驱使,兴趣驱使,职业规划,人生态度,生活态度驱使等等)

    我今年的计划,是在工作之余把.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();

    总结,还是那句话,编程靠思想,观察者模式和订阅发布是类似的。也是描述现实中的事物。晚上去开封逛逛小吃街。

    不能追求完美了,要不停的持续的优化,尽快设计个产品出来。加油!

  • 相关阅读:
    关于asp.net页面自定义404错误码返回302的最新解决方法
    基于sharpdevelop核心和ArcEngine打造插件式桌面GIS应用(概述)
    WPF自定义控件踩坑记录,用户自定义控件 绑定后台定义的 命令 依赖项属性 注意事项 静态
    WPF C# 以非独占式读取本地图片
    C#DataGridView控件60招(一)
    用TEXT文件做数据源
    boost智能指针
    linux下安装boost库
    ASP/ASP.NET程序设计电子书专题下载
    Highcharts 点击多选框取消,添加数据上绑定最大,最小值和图例上绑定提示框数据
  • 原文地址:https://www.cnblogs.com/wang-charle/p/9382078.html
Copyright © 2011-2022 走看看