文档文库
手机版
投诉建议
热门搜索:
心得体会
演讲稿
思想汇报
首页
心得体会
学习心得体会
培训心得体会
军训心得体会
社会实践
作风建设
工作心得体会
教育心得体会
演讲稿
演讲稿格式
演讲稿范文
竞聘演讲稿
师德演讲稿
三分钟演讲稿
思想汇报
思想汇报范文
转正思想汇报
大学生思想汇报
季度思想汇报
教师思想汇报
工作计划
工作计划格式
工作计划开头
工作计划结尾
总结与计划
工作计划模板
工作总结
年终工作总结
年度工作总结
个人工作总结
实习报告
实习报告范文
实习计划范文
实习鉴定范文
实习报告内容
个人简历
求职简历
简历范文
简历模板
简历表格
简历格式
祝福语
春节
除夕
元宵
端午节
合同范文
合同范本
合同样本
合同范本格式
首页
>
观察者模式-
观察者模式-
发布时间: 来源:
文档文库
小
中
大
字号:
手机查看
观察者模式
开篇还是从名字说起,
“观察者模式”的观察者三个字信息量很大。玩过很多网络游戏的童
鞋们应该知道,即便是斗地主,除了玩家,还有一个角色叫“观察者
"
。在我们今天他谈论
的模式设计中,观察者也是如此。首先,要有一个“主题”。只有有了一个主题,观察者才
能搬着小板凳儿聚在一堆。
其次,
观察者还必须要有自己的操作。
否则你聚在一堆儿没事做
也没什么意义。
从面向过程的角度来看,
首先是观察者向主题注册,
注册完之后,
主题再通知观察者做出相
应的操作,整个事情就完了。
从面向对象的角度来看,
主题提供注册和通知的接口,观察者提供自身操作的接口。
(这些
观察者拥有一个同一个接口。
)
观察者利用主题的接口向主题注册,
而主题利用观察者接口
通知观察者。耦合度相当之低
如何实现观察者注册?通过前面的注册者模式很容易给我们提供思路,
把这些对象加到一棵
注册树上就好了嘛。
如何通知?这就更简单了,
对注册树进行遍历,
让每个对象实现其接口
提供的操作。
//
主题接口
interface
Subject
{
public
function
register
(Observer $observer;
public
function
notify
(;
}
//
观察者接口
interface
Observer
{
public
function
watch
(;
}
//
主题
class
Action
implements
Subject
{
public
$_observers=
array
(;
public
function
register
(Observer $observer{
$this
->_observers[]=$observer;
}
public
function
notify
({
foreach
(
$this
->_observers
as
$observer {
$observer->watch(;
}
}
}
//
观察者
class
Cat
implements
Observer
{
public
function
watch
({
echo
"Cat watches TV
"
;
}
}
class
Dog
implements
Observer
{
public
function
watch
({
echo
"Dog watches TV
"
;
}
}
class
People
implements
Observer
{
public
function
watch
({
echo
"People watches TV
"
;
}
}
//
应用实例
$action=
new
Action(;
$action->register(
new
Cat(;
$action->register(
new
People(;
$action->register(
new
Dog(;
$action->notify(;
总结
当新对象要填入的时候,
只需要在主题
(
又叫可观察者
中进行注册
(
注册方式很多,
你也可以
在构造的时候,或者框架访问的接口中进行注册
,
然后实现代码直接在新对象的接口中进
行。这降低了主题对象和观察者对象的耦合度。
好的设计模式不会直接进入你的代码中,而是进入你的大脑中。
本文来源:
https://www.2haoxitong.net/k/doc/011c1e99f8b069dc5022aaea998fcc22bcd14384.html
《观察者模式-.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
文档为doc格式
分享到:
相
关
案
例
如何赞美他人
2024-04-27
关于西兰花的花语与寓意
2024-04-27
(建筑工程管理)变电所施工技术措施
2024-04-27
正在进行安全检测...
2024-04-27
个人所得税赡养老人约定分摊协议书范本
2024-04-27
正在进行安全检测...
2024-04-27
一种自动化组装流水线
2024-04-27
一种在智能POS机上支付即开电子发票的系统
2024-04-27
正在进行安全检测...
2024-04-27
初中毕业留言册给朋友
2024-04-27
相关推荐
1
思念故乡作文400字
2
《党员自评表自我评价2021》
3
【哲理故事】兽的宣言
4
成数练习题
5
玩物养志的美文
6
古代文言文版浪漫情书
7
党员自评登记表
8
初一散文:秋天的枫叶
9
初一散文:秋天的枫叶
10
女生标准三围
推荐内容
财务个人提升计划
【佳片U约】意大利电影:《佩拉斯卡》
招聘话术建议
最后一场雪学生作文
李商隐的诗:霜月
【二年级】游动物园 二年级游动物园作文400字
[doc]本刊记者冰情调查日记——中国海军第68次执行海上冰情调查
米酒变酸了还能不能喝
小学艺术之星事迹材料
初中这个冬天不再冷作文优秀篇