从 pureMVC 学习设计模式

 这个框架是一个 实现非常精简MVC 框架  ,适用于 C/S 结构的程序。

 

框架的核心类有

Controller

View

Modle

 

Controller 中包含对View的引用  并且包含对 Map<String,Command>

String 是通知 类型的名字 ,Command 是对应的 命令操作

View  中有一个 Map<String,List<Command>>; Map<String ,Mediator>

 

Mediator 和 相应的 Command 都在 View 中注册,Mediator 用于管理 View 与视图之间的复杂性 ,其实 Mediator 可以直接注册在 Controller 中 ,View 的作用是

让 Mediator 和 Controller 解耦,。

 

Modle 则负责管理Proxy  ,目的是 让  Command  与 Proxy 解耦

 

Command  的接受者其实就是 Proxy  ,利用 Proxy 的逻辑来完成处理 。

 

Observer 模式 在这里 实现为  一个 Observer  需要定义 Ifunction 对象 来处理响应, Notifaction  定义传输的消息类型   ,Notifer 则是通知的发出者,用来通知各路观察者

是通过 facade 的 notifyObservers 方法, 而Observers 方法 有两个注册途径   一是在Controller 中注册Command ,另外就是 在View中注册Medaitor   。

 

Proxy 作为代理类 处理各种业务逻辑,可以进行访问控制? private Object data = null 这个属性我想是不是定义一个被代理类型的对象呢??

 

Facade 的应用  , Singleton 的应用 ,注意是多线程模式下, 实现方法是 同步了 静态方法 ,相当于在 class 对象上加锁了。

总的来说 

 

IProxy ,Command ,Modle三个类实现了Notifier 接口  ,可以实现通知机制 , 在Controller 中实现了注册命令的功能,在View 中实现了注册Mediator 的功能, 在与组件交互上,Mediator 实现了   各种显示页面的可变性。

 

实际应用流程如下,

 

实现 Mediator 接口 , 在 Controller 中注册 关注的事件, 在 用户界面中事件出发 通过Model  交给 Proxy 处理 结果返回,并发出结果通知事件,来通知View 选择 适当的 Mediator 来显示组件。

 

个人猜想 Struts  应该也是类似的架构,不过应该复杂很多   ,所以 以后再分析 struts

 

 

上面利用了模式

1.单利

2.门面

3.命令

4.代理

5.中介者

6.观察者

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值