zoukankan      html  css  js  c++  java
  • 重看设计模式 观察者模式

      大约是大三吧, 学习面向对象。 在课程的后期, 老师逐渐的介绍到了设计模式。 甚至现在还模模糊糊的记得几个, 工厂模式, 观察者模式, 适配器模式什么的。

      课程中间, 有一个实验, 要求设计一个 MP3, 当然, 要用上适当的设计模式。 我苦思冥想如何在 JAVA 中播放音乐, 当时的目标是尽可能的简单,不过还是在实现音乐的播放上耗时最多。 最后套上一个观察者模式, 就完美的完成了一个小实验。 我已记不得当初做这个实验室到底如何用的观察者模式, 但是一个很深的印象是 : 这个观察者模式, 没想的这么简单。

      这一点, 多年之后我仍然记忆犹新, 就像编译器, 至今我仍希望能写出来。 对此, 我一直在在意。 近日, 师兄让我搭建一个可控的视频服务器, 最后的结论是 dss 比较好,在阅读 dss 的源代码中, 看到了 reactor design pattern 的使用, 又推及到了 观察者模式。 10分钟看完一个介绍, 觉得好简单呢。

      可能当时对编程的理解还比较浅, 脑子中的回数少, 所以觉得难。另一个问题是, 我当初面对的是一个实际的编程问题, 稍大的项目总是会让人感觉到有些不可控, 大脑的“内存”不够用。 今天我面对一个很简单的例子, 认为其简单, 也是因为纸上谈兵。

      这里再分析一下观察者模式。我觉得观察者模式的核心在于类的继承。被观察者的行为是一定的, 而面对变化, 观察者的行为却大可不同。 这种逻辑的实现在于对同一个 update 方法, 不同的观察者有不同的实现。 这就在于继承, 继承使得同一个方法, 在不同的子类中拥有不同的实现。

      我好想做一个有意思的 PPT, 教一下别人观察者模式, 我喜欢面向对象。 

  • 相关阅读:
    oracle
    SQL Server- 行列转换 行转列,多行转多列
    oracle
    asp.net 去掉小数点后面多余的0,本身为0则不显示
    asp.net 去掉小数点后面多余的0,本身为0还是显示为0
    asp.net 经常用到需要判断文本框是否输入的数字是小数,有无正负,几位小数,可以封装一起判断
    ASP.NET gridview导出excel,防止繁体产生有乱码的方式
    SQL- @@ROWCOUNT -返回上一行执行影响的行行数
    mui-a标签跳转
    浏览器地址截取
  • 原文地址:https://www.cnblogs.com/xinsheng/p/2937090.html
Copyright © 2011-2022 走看看