proxy就是代理,也可以叫委托。说通俗点,就是委托第三方给原来的功能动态的添加一些新的功能,但是对于使用者来说却没有丝毫影响,原来的使用方法同样使用于新功能。呵呵,听起来有点玄,其实用到开发上会非常有用,废话不说看代码。
有一个类User代表用户
class User
{
public function use(p:IProduct):Void
{
p.getIt(); //使用产品
}
}
产品类CProduct以及接口IProduct
Interface IProduct
{
function getIt():Void
}
class CProduct implements IProduct
{
public function getIt():Void
{
//code in CProduct //旧的实现功能
}
}
这是一个典型的基于接口的编程方法,使用也简单:
var user:User = new User();
user.use(new CProduct());
但是功能是可以变的,如果现在我们需要在旧功能上添加一种新的功能,该怎么办,再重写一个实现类吗(工厂模式),这样就不得不把原有的功能再写一遍。而且,原来的功能还要使用,可以说是两种新老功能并存。更不能修改原有的功能。在这里用proxy就比较合适了。
class CNewProduct extends CProduct
{
public function getIt():Void //重写原来的方法
{
//添加新功能
super.getIt(); //关键是这里,使用了父类的同名方法
}
}
proxy在这里使用了继承的方式(继承只是一种实现方式而已)扩展了功能,同时对原有的功能没有任何印象。再看看如何使用
var user:User = new User();
user.use(new CNewProduct());
呵呵,看到了吗,按需使用,原来的代码丝毫不做修改,还是使用use方法,原有的功能也能保留,代码也做到了最大限度的重用。如果以后还要扩展,使用这样的方法将丝毫不会对原系统有任何影响。
小总结一下:
proxy目的:动态地添加新功能,同时保持调用方式不变。
适用范围:
1 动态地添加新功能
2 新功能的使用和原有的方式一致
分享到:
相关推荐
在IT行业中,Flash曾是创建动态网页内容、交互式应用程序和动画的重要工具,尤其是在互联网的早期阶段。然而,随着HTML5等技术的发展,Flash逐渐淡出舞台,但其设计理念和框架依然对现代Web开发有着深远影响。本篇...
为了深入学习和理解代理模式及其在C#中的应用,可以参考以下资源: - **《设计模式:可复用面向对象软件的基础》GoF**:这本书是设计模式领域的经典之作,详细介绍了包括代理模式在内的多种设计模式。 - **《面向...
《深入理解AS3 PureMVC设计模式及其在Flash游戏编程中的应用》 在ActionScript3(AS3)的开发世界中,PureMVC框架是一种广泛应用的设计模式,它为开发者提供了强大的组织代码的能力,特别是在创建复杂的游戏和应用...
在Flash开发领域,ActionScript3(AS3)是用于创建交互式内容和应用程序的主要编程语言。而PureMVC是一个轻量级的框架,它提供了一种结构化的方式来组织和管理代码,使得大型项目更易于维护和扩展。本教程将深入探讨...
【标题】:“Java 整合 Flex 开发应用” 在IT领域,Java与Flex的整合是构建富互联网应用程序(RIA)的一种常见...通过阅读这个博客和附件,开发者可以获得从理论到实践的全面指导,提升在Java和Flex整合开发中的技能。
在本教程中,我们将深入探讨如何使用Flash Builder 4.5与Java进行集成,以便实现数据的持久化存储。Flash Builder 4.5是一...在实践中不断探索和优化,将有助于提升我们的开发技能,使我们能够应对各种复杂的项目需求。
《J2EE开发全程实录》是一本深入探讨企业级软件开发中J2EE平台运用的专业书籍,由杨中科撰写,他是一名资深的IT专家,专注于开源技术的研究与推广,曾在国内某ERP公司任职,拥有丰富的实践经验。本书不仅涵盖了J2EE...
设计模式是软件工程中的一种重要概念,它代表了在特定上下文中被反复使用、经过验证的设计解决方案。设计模式详谈主要涵盖了设计模式的...在实践中,我们需要结合具体需求,灵活运用各种模式,创造出高效、稳定的系统。
PureMVC支持多种编程语言,其中包括ActionScript 3.0,适用于Flash和Flex应用的开发。 #### 二、PureMVC的核心组件 PureMVC的核心组件包括Model、View、Controller以及Façade等,这些组件协同工作以实现对应用...
描述中的“好用”一词,暗示了PureMVC在实际开发中具有高效、易用的特点。同时,提供了博文链接(已省略),这通常是为了提供更多的使用指南、教程或者用户评价,帮助读者更好地理解和使用PureMVC框架。 **标签解析...
Flex MVC框架是Adobe Flex开发中的重要工具,它主要用于构建可维护性和可扩展性极强的富互联网应用程序(RIA)。在Flex开发中,MVC(Model-View-Controller)设计模式被广泛采用,因为它能有效地分离业务逻辑、数据...
在提供的"AS3DesignPatterns.pdf"文件中,很可能详细介绍了这些模式在AS3中的应用实例和最佳实践,帮助开发者理解如何在实际项目中实施这些模式。同时,"webgamei说明文档.txt"可能包含了关于在Web游戏中如何利用...
《PureMVC Demo:深入理解Flex中的框架应用》 PureMVC是一款开源的、轻量级的、模型-视图-控制器(Model-View-...同时,这也是一个很好的学习资源,可以帮助开发者掌握如何在RIA项目中应用设计模式和最佳实践。
通过深入学习和实践这些组件,开发者可以在Flex 4.6环境中构建出高效且易于维护的应用程序。如果你是初学者,可以从简单的例子开始,逐步理解PureMVC的架构和工作原理,然后逐渐将其应用到更复杂的项目中。
在IT行业中,FLEX和Spring都是重要的技术框架。FLEX是一种用于构建富互联网应用程序(RIA)的客户端技术,而Spring是Java平台上的一个开源框架,主要用于企业...记得在实践中不断学习和优化,提高开发效率和应用质量。
综上,PureMVC AS3 是一个强大的开发工具,无论是在Flex还是Flash项目中,都能帮助开发者构建出结构良好、易于维护的应用程序。通过深入研究提供的文档和示例,开发者可以更好地掌握这一框架,提升开发效率。