b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

解释器模式举例_lua解释器交互模式_动态编译与解释器模式(24)

电脑杂谈  发布时间:2017-02-22 17:29:35  来源:网络整理

控制台输出:

当前文本:这里是初始文本,可能为文件中读取的。开始修改文本:当前文本:这里是初始文本,可能为文件中读取的。添加文字1当前文本:这里是初始文本,可能为文件中读取的。添加文字开始恢复:当前文本:这里是初始文本,可能为文件中读取的。添加文字1当前文本:这里是初始文本,可能为文件中读取的。开始重做:当前文本:这里是初始文本,可能为文件中读取的。添加文字1当前文本:这里是初始文本,可能为文件中读取的。添加文字再次恢复:当前文本:这里是初始文本,可能为文件中读取的。添加文字1当前文本:这里是初始文本,可能为文件中读取的。再次重做:当前文本:这里是初始文本,可能为文件中读取的。添加文字1当前文本:这里是初始文本,可能为文件中读取的。添加文字再次恢复:当前文本:这里是初始文本,可能为文件中读取的。添加文字1当前文本:这里是初始文本,可能为文件中读取的。当前文本:这里是初始文本,可能为文件中读取的。添加文字2再次重做:

该例子就是备忘录模式典型的例子。

12、观察者模式(Observer Pattern)

别名: 依赖,发布/订阅(Another Name: Dependents, Publish/Subscribe)

定义对象间的一种一对多的依赖关系,当一个对象状态发生改变时,所有依赖它的对象都得到通知并被自动更新。

何时使用

当一个对象的数据更新时,需要通知其他对象,而又不希望和被通知的对象形成紧耦合时

优点

...

比如我们有个天气服务(主题),然后有多个使用它的客户端(观察者),包括android和iphone端app的服务(观察者),那么就可以使用这么模式。

我们需要一种结构存放天气信息(注意,省略了get、set方法!):

//天气的消息实体public class WeatherInfo {    private long time;    private String weather;    public WeatherInfo(long time,String weather){        this.time = time;        this.weather = weather;    }    @Override    public boolean equals(Object obj) {        WeatherInfo info = (WeatherInfo) obj;        return info.time==this.time&&info.weather.equals(this.weather);    }}

然后我们定义天气服务的接口(主题),以表示它应实现哪些功能:

//主题public intece IWeatherService {    void addClient(Client client);      //添加观察者    boolean deleteClient(Client client);//删除观察者    void notifyClients();               //通知    void updateWeather(WeatherInfo info);//主题内容更新}

接着就是客户端的接口描述:

//观察者public intece Client {    void getWeather(WeatherInfo info);}


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-33893-24.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...