SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
Develop Guideline
Pattern - MVCS
•   Model
•   View
•   Controller
•   Service
Dependencies Map
             依赖关系图


                           Actor1



View1                      Actor2
              Page


View2                      Actor3
Static 静态类             private var str:String;
                       str = Model.foo();




Singleton 单例           private var str:String;
                       str = Model.getInstance().foo();




Dependency Injection   [Inject]
                       public var model:IModel;


依赖注入                   private var str:String;
                       str = model.foo();
Event Flow
                       事件流

                       Signal Bus



                               Actor1   Actor2   Actor3


        Page




View1          View2
View
•   作为视图元件(MC,Graphic,Button,组件等)
    的容器。
•   监听但不处理视图元件发出的事件,仅转发
    为对应的自定义信号(Signal)。
View
提供以下公开方法:
• init()    //初始化
• update()  //更新
• destroy() //销毁
Page(Mediator)
•   监听View发出的信号。
•   调用系统中其他对象(Model,Service…)的方法
    或数据,或者直接发出系统信号。
•   监听系统中的信号,包括Gaia中的事件,并对
    View执行相关的操作。
Page(Mediator)
包含以下保护方法:
• init ()    //初始化视图和代理设置
• destroy () //销毁视图和代理设置
Page(Mediator)
•   访问assets对象来获取各种外部资源。
    (通过Gaia框架的加载机制实现)

•   获取系统里其他对象(包括Model, Service,
    Proxy和AppSignalBus等)的引用。
    (通过Robotlegs的注入功能实现)
Controller
•   Controller层主要由Command(命令)模式实现。
•   Robotlegs架构提供了将事件映射为一个命令
    (Command)的功能。通过Signals插件的扩展,
    信号也可以映射成为一个命令。
•   命令是一个无状态的对象。主要用于封装操
    作,解除视图与系统其他对象之间的依赖关
    系。
Controller - Signals
•   架构提供了统一的信号传递器AppSignalBus,
    所有系统对象可以通过它来发送信号。
•   系统信号可以由其相关联的命令(Command)来
    处理,或者被其他Page(Mediator)监听。
•   只有Page(Mediator)可以监听信号。
Model/Service
•   Model用于存储状态,封装应用层逻辑。
•   Service不保持状态,只负责外部资源的获取,
    并处理转换为系统内使用的数据格式。
•   Model和Service通过发出系统信号通知系统内
    的其他对象。
•   Model和Service都不应该监听事件。
•   Model和Service应该是基于接口的实现。
Other Classes
 •   MainContext
 •   mvcs.MediatorPage
 •   mvcs.AppActor
MainContext
MainContext是应用程序主环境的配置类,包
含以下几种依赖注入的关系定义:

•   系统中Model/Service/Proxy的映射
•   命令与事件/信号的映射
•   视图与代理的映射
MediatorPage

MediatorPage类继承自Gaia框架中Page的基
类AbstractPage,扩展了系统信号的传递功
能(通过注入的AppSignalBus)。
AppActor

AppActor类继承自Robotlegs架构中的Actor,
扩展了系统信号的传递功能(通过注入的
AppSignalBus)。
Structure of src folder
                •   models, views, controllers, services
                    对应MVCS模式的包

                •   signals
                    信号类,代替内置的Event

                •   pages
                    Gaia默认的Page包

                •   assets
                    通过ActionScript编译的资源

                •   mvcs
                    MVCS模式的扩展基类

Weitere ähnliche Inhalte

Ähnlich wie Develop - Patterns

Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文
Guo Albert
 
Mvc training
Mvc trainingMvc training
Mvc training
xioxu
 
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
drewz lin
 
2011 JavaTwo JSF 2.0
2011 JavaTwo JSF 2.02011 JavaTwo JSF 2.0
2011 JavaTwo JSF 2.0
Anthony Chen
 
Btrace intro(撒迦)
Btrace intro(撒迦)Btrace intro(撒迦)
Btrace intro(撒迦)
ykdsg
 
系統整合
系統整合系統整合
系統整合
麒 王
 
Template mb-kao
Template mb-kaoTemplate mb-kao
Template mb-kao
xwcoder
 
Struts学习笔记
Struts学习笔记Struts学习笔记
Struts学习笔记
yiditushe
 

Ähnlich wie Develop - Patterns (20)

Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文
 
Mvc training
Mvc trainingMvc training
Mvc training
 
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
 
Android应用开发 - 沈大海
Android应用开发 - 沈大海Android应用开发 - 沈大海
Android应用开发 - 沈大海
 
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
 
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
 
Axure RP Prototyping Tool
Axure RP Prototyping ToolAxure RP Prototyping Tool
Axure RP Prototyping Tool
 
Berserk js
Berserk jsBerserk js
Berserk js
 
Real World ASP.NET MVC
Real World ASP.NET MVCReal World ASP.NET MVC
Real World ASP.NET MVC
 
Flex 4.5 action custom component development
Flex 4.5 action custom component developmentFlex 4.5 action custom component development
Flex 4.5 action custom component development
 
ASP.NET Core 2.1設計新思維與新發展
ASP.NET  Core 2.1設計新思維與新發展ASP.NET  Core 2.1設計新思維與新發展
ASP.NET Core 2.1設計新思維與新發展
 
2011 JavaTwo JSF 2.0
2011 JavaTwo JSF 2.02011 JavaTwo JSF 2.0
2011 JavaTwo JSF 2.0
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统
 
Btrace intro(撒迦)
Btrace intro(撒迦)Btrace intro(撒迦)
Btrace intro(撒迦)
 
系統整合
系統整合系統整合
系統整合
 
Template mb-kao
Template mb-kaoTemplate mb-kao
Template mb-kao
 
Unity遊戲設計- 應用Sprite物件
Unity遊戲設計- 應用Sprite物件Unity遊戲設計- 應用Sprite物件
Unity遊戲設計- 應用Sprite物件
 
Struts学习笔记
Struts学习笔记Struts学习笔记
Struts学习笔记
 
Windows Mobile 多媒體應用程式開發
Windows Mobile 多媒體應用程式開發Windows Mobile 多媒體應用程式開發
Windows Mobile 多媒體應用程式開發
 
Kissy design
Kissy designKissy design
Kissy design
 

Develop - Patterns