ExtJS设计模式
在前端页面展示方面,无论是风格统一或者是组件的管理、扩展,ExtJS都做得非常优秀。
另外,ExtJS还是一个优秀的基于JavaScript的MVC框架,其中的设计理念和设计模式非常值得我们在项目中参考。
笔者虽然使用ExtJS多年,但也是和许多读者一样,并没花多少时间去深究其内核和设计精髓,突然一时心血来潮,非常的潮(因为最近真的很潮,回南天噢),所以在此愿与大家一起谈论和分享。
经过初步分析,笔者认为,在ExtJS中,应用组合模式来管理各UI组件(用户界面通常组合了嵌套的组件,像容器、面板、窗口、按钮等),用观察者模式来监听管理各事件,用代理模式处理ajax请求,用创建者模式创建复杂的组件,用责任链模式处理触发事件,用适配器模式适配各种浏览器……
(注:本文讨论的设计模式不一定与四人帮写的《GOF设计模式》一样,有正规的类图;本文讨论的是ExtJS应用到的设计模式思想或变体。)
【组合模式】
与很多优秀的UI框架一样,ExtJS应用组合模式来管理UI组件。各个UI组件可以任意嵌套组合使用,一层层叠起来,然后在浏览器呈现HTML标记。
例如:Ext.Container可以通过add(Component /Array)方法添加任意UI组件;通过get(key )方法获取被嵌套的组件,通过remove(component)方法删除取被嵌套的组件。
【观察者模式】
读者如果做过前端开发,对观察者模式肯定不会陌生,有事件的地方就有观察者模式。
我们先来看一下的EXT组件结构图:
聪明的读者首先会发现,所有的ExtJS组件都继承Ext.Component,而Ext.Component继承Ext.util.Observable,也就是说,所有的ExtJS组件都是可观察的对象,开发者可以通过addEvents、addListener方法为ExtJS组件添加自定义事件和监听注册事件,当然还可以通过fireEvent方法触发已注册事件和removeListener方法删除组件已注册的事件。
【代理模式】
代理模式大家更不陌生,尤其是我们立信人!每个立信人都感同身受,因为我们上外网就是通过代理!
代理模式一般用来干以下不见光的事情(注:不是见不得光,不过很多代理行业确实见光死):
1、保护代理或控制代理(站在老板的立场是保护代理,站在员工立场是控制代理。You know!)。
2、远程代理:管理客户和远程对象之间的交互。
3、虚拟代理:控制访问实例化开销大的对象。
当然代理还有很多变体,例如:缓存代理、同步代理等等。
ExtJS就是使用代理模式处理ajax请求,算是属于远程代理的一种。例如Ext.data.Store可以这样写:
var store = new Ext.data.Store( {
proxy : new Ext.data.HttpProxy( {
url : "ftp/ftpserver.action"
})
});
【剩下的模式】
Singleton 单例模式 如Ext、Ext.Ajax
Flyweight 享元模式 Ext.fly
Template Method 模板方法模式 Ext.Template
……
- 大小: 21 KB
分享到:
相关推荐
### ExtJS设计模式详解 #### 引言 随着前端技术的发展与成熟,越来越多的企业和开发者开始重视前端架构的搭建与优化。作为一款优秀的前端框架,ExtJS不仅在UI组件管理和风格统一方面表现出色,同时也引入了许多经典...
MVC(Model-View-Controller)模式是一种软件设计模式,将应用分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。在ExtJS中,这一模式被巧妙地应用于创建和管理应用的各个层面。 1. **模型...
单例模式是ExtJS设计模式之一,通过合理的使用可以极大地提升代码的质量和效率。了解和掌握单例模式不仅可以帮助我们在日常开发中编写出更好的代码,还可以让我们更加深刻地理解JavaScript的核心机制。
MVC模式是一种软件设计模式,将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。在ExtJS 4.0中,这种模式被应用于创建复杂的用户界面。 - **模型(Model)**:负责数据的存储和业务...
自己的理解,重写了公司底层代码,用的设计模式做多就是单例和模板方法,可以看下实际公司是怎么来用的,还有就是面向接口编程,如果给你在我现在这个基础上来改,自己去写主从表,看可不可以写出来.自己如何认真的...
在“extjs流程界面设计器参考”中,我们主要关注的是如何利用ExtJS来开发工作流设计器。 工作流设计器是一种工具,它允许用户通过图形化界面定义、修改和执行业务流程。基于ExtJS的工作流设计器,利用了ExtJS的强大...
9. **事件系统**:事件驱动的设计模式使得组件间通信简单,增强了代码的模块化和可维护性。 10. **皮肤系统**:提供多种预设皮肤,可以快速改变应用外观,同时也可以自定义皮肤满足个性化需求。 在“ExtJS3.3中文...
02.编写几个通用的service方法、设计数据库 03.搭建ExtJS的MVC框架 04.主界面的搭建、登录功能和菜单树的生成 05.创建菜单树、前台保存用户信息 06.菜单树响应事件、我的文章模块界面搭建 07.继续搭建我的文章模块,...
ExtJS的核心是其组件模型,它基于MVC(Model-View-Controller)设计模式,允许开发者分离数据、视图和控制逻辑。框架提供了大量的预定义组件,可以轻松构建交互式的用户界面。同时,ExtJS支持响应式设计,使得应用能...
尽管3.3版本较旧,但其设计理念和核心机制在后续版本中依然延续,因此掌握3.3的基本知识对理解和学习新版本的ExtJS有极大帮助。通过阅读这个中文API手册,开发者可以了解每个类的功能、使用方法,以及如何将它们组合...
1. **组件化**:EXTJS4引入了基于MVC(Model-View-Controller)设计模式的组件系统,允许开发者构建复杂、可复用的UI组件。这些组件可以是简单的按钮、表格,也可以是复杂的表单、数据网格等。 2. **布局管理**:...
- **MVC模式**:EXTJS采用Model-View-Controller架构,分离了业务逻辑、视图和数据控制,增强了代码的可维护性。 - **状态管理(State Management)**:EXTJS允许保存和恢复组件的状态,这对于在线设计器来说尤为...
关于文件名称列表中的"ExtJS中文手册.doc",这表明手册以Microsoft Word文档格式提供,方便开发者打印或离线阅读。可能包含以下章节: 1. **基础概念**:介绍ExtJS的基本结构,如类系统、MVC模式、组件生命周期等。...
在ExtJS3.0中,核心概念包括: 1. **组件(Components)**:ExtJS的基础是组件化,它提供了一系列预定义的UI组件,如按钮、表格、面板、窗口等。这些组件可以独立使用,也可以组合创建复杂的用户界面。 2. **布局...
3. **布局管理**:ExtJS提供多种布局模式,如表布局、边框布局、Fit布局等,帮助开发者构建适应不同屏幕尺寸和内容需求的界面。 4. **数据绑定**:数据绑定是ExtJS的一大特色,它允许将数据模型与UI组件直接关联,...
它引入了Model-View-Controller(MVC)设计模式,帮助开发者更好地组织和管理代码,提高可维护性和可扩展性。在本实例中,我们将深入探讨ExtJS 4.0中的MVC模式及其组成部分。 1. **Model(模型)**: - Model是...
MVC(Model-View-Controller)模式是一种软件设计模式,广泛应用于EXTJS中,用于组织和分离应用的业务逻辑、视图展示和数据控制。在EXTJS的MVC实现中,每个部分都有明确的职责,有助于提高代码的可维护性和可扩展性...
通过阅读这份EXTJS 3.0中文文档,开发者可以了解EXTJS的基本架构,掌握组件的创建、配置和使用,学习如何通过EXTJS的MVC模式组织应用,以及如何利用EXTJS的数据管理功能实现与服务器的通信。此外,文档中的示例代码...
MVC模式则是计算机软件中的一种设计模式,主要通过将应用分为三个核心组件(模型Model、视图View和控制器Controller)来降低代码的耦合度,并增强代码的可重用性。在extJS4中,开发者可以通过MVC模式更高效地构建和...