`
sooxin
  • 浏览: 259262 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

【转载】浅谈 flash 中的设计模式:模版

阅读更多
我们开发过程中肯定会希望这次做的东西下次还能用,于是我们提出了面向对象的开发方法,就是把开发过程当中的东西对象化、抽象化、功能化,这样以后就再用也很容易。对于flash开发而言,macromedia(现在是adobe)提供了一种更简单的方法:组件。

于是做flash开发的时候要随时惦记着这件事情,时刻想着能不能把现在做的这个东西转换成组件,以及转换成组件只能怎么保证灵活性和通用性。

比如这次做图片上传的插件,里面需要3个标签来切换不同的功能,那么很容易就想到tabBar这个组件,但是flex3有而flash没有,去网上找了会儿没找到(当时居然忘记yahoo flash开发社区了……),想着反正不难,就自己写了。

这个时候就要考虑了,怎样写,这个标签切换才能更加通用呢?首先,不同的地方标签的外观肯定是不同的,功能倒绝对的大同小异,那么就需要外观比较自由的按钮。flash as3开发里面,基本上是将每个外观封装成一个元件,然后绑定到一个类上,使用的时候,实例化这个类,就可以使用由flash ide创建的外观,和as定义的功能了。换言之,在具体应用的时候,我们只需要写一个类,让他具有和组件中标签按钮具有一样的功能,然后替换掉组件中的标签按钮,就可以了。

习惯面向对象编程思维的同学第一反应一定是接口(我就是~),确实,在这种典型的多态特征下,定义接口并且实现接口是一种解决方案。但是这里有一个问题就是这些按钮还有一些公共的业务逻辑,我们当然希望在基类里面包含起来,而接口是不能实现方法的。于是我转而使用设计模式中的“模板方法”。

模板方法是这样的,定义一个不能实例化的抽象类,里面实现了一些公共方法,需要子类重写的方法直接抛出一个异常。使用的时候,用一个类来继承它,并且使用override关键字把需要重写的方法重写一遍,将特殊的方法在特殊类中实现。

简单的代码表述是这样子的:

package{
  import flash.display.Sprite;
  public class AbstractButton extends Sprite{
    public final function init():void{
      //这个方法就是实现公用逻辑的方法,使用final关键字来避免被子类改写
    }
    public function abstractMethod():void{
      //抽象方法,只需要抛出一个异常
      throw new Error("Abstract Method!");
    }
  }
}
package{
  public class myButton extends AbstractButton{
    public override function abstractMethod():void{
      //在这里进行复写,以便实现当下的特有逻辑
      trace("override abstract method~~");
    }
  }
}

如此,我们便可以保证公有逻辑统一(改了父类,子类都会得到更改),而子类又保持着相对自由,独立的特性。这便是模板方法。
分享到:
评论

相关推荐

    设计模式:可复用面向对象软件的基础(非扫描版+高清)

    《设计模式:可复用面向对象软件的基础》是一本经典的软件工程著作,它详细阐述了在面向对象编程中,如何通过使用预定义的解决方案模板来解决常见问题,从而提高代码的可读性、可维护性和复用性。设计模式是经验丰富...

    《设计模式:可复用面向对象软件的基础》英文版

    例如责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator...Strategy)、模板方法模式(Template Method)和访问者模式(Visitor)等...

    设计模式:可复用面向对象软件的基础--详细书签版

     本书结合设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别...

    设计模式:可复用面向对象软件设计基础(附源码)

    3. **行为型模式**:包括责任链模式、命令模式、解释器模式、迭代器模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。这些模式主要处理对象之间的交互和职责分配。 例如,单例模式...

    深入浅出设计模式 C++ 源码 + 设计模式 C++

    设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的模板。C++是一种强大而灵活的编程语言,特别适合实现各种设计模式。本资料包包含“深入浅出设计模式 C++”的源码和相关教材,旨在帮助开发者...

    设计模式:可服用面向对象软件的基础

    "设计模式:可服用面向对象软件的基础"这本书深入浅出地介绍了26个关键的设计模式,它们是软件开发人员在构建复杂、可扩展和维护性高的系统时的宝贵工具。 一、创建型模式(Creational Patterns) 1. 单例模式:...

    C#面向对象设计模式纵横谈(1):面向对象设计模式与原则

    面向对象设计模式是软件开发中的重要工具,它们是经过时间考验和广泛实践验证的设计解决方案,旨在提高代码的可重用性、灵活性和可维护性。C#作为一款强大的面向对象编程语言,为开发者提供了实现这些设计模式的良好...

    深入浅出设计模式(中文版)

    《深入浅出设计模式》是一本面向Java开发者的专业书籍,旨在帮助读者理解并熟练应用设计模式。设计模式是软件工程中的重要概念,它总结了在特定情境下解决常见问题的最佳实践,是经验丰富的开发者们智慧的结晶。这...

    设计模式的杰作:深入设计模式

    《深入设计模式》是一部由亚历山大·什韦茨所著、彭力翻译的作品,旨在通过深入浅出的方式介绍设计模式的相关内容。该书不仅包含了面向对象程序设计的基础知识,还详细探讨了设计模式的概念及其应用价值,同时介绍了...

    C# 23种设计模式(中文高清带书签)

    《C# 23种设计模式》是一本深入解析C#编程中常用设计模式的权威指南,对于想要提升代码质量、提高软件可维护性的开发者来说,是不可或缺的参考资料。书中详细介绍了23种经典的设计模式,这些模式是软件工程实践中...

    java 23种设计模式.zip

    设计模式主要分为三大类: 1.创建型模式:工厂模式、抽象...4.行为型模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。

    深入浅出java设计模式(高清中文PDF)

    所涉及的设计模式包括工厂模式、单例模式、建造模式、原型模式、适配器模式、桥梁模式、组合模式、装饰模式、门面模式、享元模式、代理模式、责任链模式、命令模式、解释器模式、迭代器模式、调停者模式、备忘录模式...

    Head First设计模式(完整高清版).pdf

    设计模式是软件开发中的经验总结,是解决常见问题的有效模板,可以帮助我们编写更灵活、可维护和可扩展的代码。这本书不仅适用于Java和Python等编程语言,其核心理念同样适用于其他面向对象的编程环境。 1. **设计...

    深入浅出设计模式C#Java版

    设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的模板或蓝图,可以被反复使用,以提高代码的可读性、可维护性和可复用性。本资源"深入浅出设计模式C#Java版"是针对这两种主流编程语言介绍设计...

    设计模式 23种设计模式PPT

    设计模式是软件开发中一种广泛采用的实践,它代表了在特定上下文中解决常见问题的通用解决方案。设计模式并非具体的代码或库,而是对最佳实践的描述,它们是经过时间验证、可重用的代码设计模式,旨在提高代码的...

    深入浅出的设计模式

    《深入浅出的设计模式》是IT领域中一本非常经典的学习资料,主要针对软件设计中的“设计模式”这一核心概念进行深入解析。设计模式是解决软件开发中常见问题的经验总结,是程序员之间的通用语言,能够帮助我们构建可...

    深入浅出设计模式

    《深入浅出设计模式》是一本深受欢迎的设计模式专著,旨在帮助开发者理解和掌握软件设计中的核心原则与模式。设计模式是软件工程中的一种最佳实践,它总结了在特定上下文中解决问题的常见方法,为软件开发提供了可...

    PDF电子书《深入浅出设计模式》中文版(附源码)

    《深入浅出设计模式》是一本深受欢迎的设计模式学习书籍,中文版的出版为国内读者提供了更方便的学习途径。设计模式是软件工程中的一种最佳实践,它总结了在特定上下文中解决问题的常见方法,旨在提高代码的可读性、...

    深入浅出设计模式(HEAD_FIRST设计模式)电子书+java代码

    《深入浅出设计模式》是基于HEAD FIRST系列的著名设计模式教程,专为初学者打造,旨在用生动直观的方式帮助读者理解复杂的设计模式概念。这本书以其独特的图文并茂的讲解方式,使得学习过程更为轻松有趣。书中涵盖了...

    设计模式精解-GoF 23种设计模式解析附C++实现源码 完整版

    《设计模式精解-GoF 23种设计模式解析附C++实现源码 完整版》是一份深入探讨软件工程中经典设计模式的重要资料,涵盖了面向对象编程中的核心设计原则和实践。这份资源主要关注GoF(Gang of Four,即《设计模式:可...

Global site tag (gtag.js) - Google Analytics