`
sooxin
  • 浏览: 251520 次
  • 性别: 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~~");
    }
  }
}

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

相关推荐

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

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

    Java 经典设计模式讲解以及项目实战

    设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述Spring源码中运用到的一些设计模式 Ibatis设计模式简介:主要是讲述Ibatis源码中运用到的一些设计...

    设计模式之模板方法模式

    java的23种常用设计模式:模板方法模式

    设计模式(JAVA语言实现)--20种设计模式附带源码PPT模板.pptx

    logo 8原型模式:浅拷贝和深度拷贝原型模式:浅拷贝和深度拷贝 设计模式(JAVA语言实现)--20种设计模式附带源码PPT模板全文共22页,当前为第9页。 9单例模式:单个实例单例模式:单个实例 设计模式(JAVA语言实现...

    设计模式:简单工厂、方法工厂、抽象工厂、单例、原型、委派、模板、代理、策略

    设计模式:简单工厂、方法工厂、抽象工厂、单例、原型、委派、模板、代理、策略

    java 23种设计模式.zip

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

    深入浅出设计模式

    深入浅出设计模式,比head first更易懂,共讲解了22种设计模式: 工厂模式 单例模式 建造模式 原型模式 适配器模式 桥梁模式 组合模式 装饰模式 门面模式 享元模式 代理模式 责任链模式 命令模式 解析器模式 迭代器...

    java常用23中设计模式

    行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 其实还有两类:并发型模式和线程池模式。

    设计模式可复用面向对象软件的基础.zip

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

    研磨设计模式-陈臣.epub

    设计模式:是指在软件开发中,经过验证的,用于解决在特定环境下、重复出现的、特定问题的解决方案。 1.设计模式是解决方案 根据上面对设计模式的定义可以看出,归根结底,设计模式就是一些解决方案。” 摘录来自:...

    掌握Spring设计模式:Java工程师必备指南

    作为一个资深Java工程师,我发现《Spring 设计模式总结》PDF非常精彩,它深入剖析了Spring框架中的关键设计模式。例如,简单工厂模式通过BeanFactory展现,实现了松耦合和动态对象创建。工厂方法模式则通过...

    设计模式的精简版

    java设计模式的精简版,创建型模式:工厂方法模式,抽象...行为型模式:策略模式,模板方法模式,观察者模式,迭代子模式,责任链模式,命令模式,备忘录模式,状态模式,访问者模式,中介者模式,解释器模式,共11种

    尚硅谷设计模式源码笔记课件.zip

    行为型模式:模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式) 2) 学习目标:通过学习,学员...

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

    文件类型为PDF文件,此文档对20多种java设计模式进行了详细讲解,在中文讲解的过程中还附有代码示例给学习者进行参考,使学习者通过实践更容易理解设计模式的原理。 本文档目录: 1.工厂模式 2.单例模式 3.建造...

    免费开源!!Java 23种设计模式全归纳

    设计模式 设计模式(Design Pattern)是一套被反复使用、大多数...行为类型模式:模版方法模式、命令模式、迭代器模式、观察者模式、介入者模式、多层模式、解释器模式、状态模式、策略模式、责任链模式、访问者模式。

    设计模式PPT

    创建型模式用来处理对象的创建过程,主要包含以下5种设计模式:  工厂方法模式(Factory Method Pattern)  抽象工厂模式(Abstract Factory Pattern)  建造者模式(Builder Pattern)  原型模式...

    反模式:危机中软件、架构和项目的重构

    本书从一个新的角度审视模式,提出了反模式的概念,介绍了在软件开发中常常出现的问题——将设计模式错误应用于不适当的上下文环境。首先,定义了软件开发参考模型和文档模板来说明这些反模式。然后,从开发人员角度...

    C++设计新思维:泛型编程与设计模式之应用.pdf 带目录书签

    C++设计新思维:泛型编程与设计模式之应用.pdf 带目录书签

    java中的设计模式,主要的设计模式

    适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式观察者模式、策略模式、模板模式、责任链模式、解析器模式、迭代子模式 命令模式、状态模式、备忘录模式、访问者模式、中介者模式

    unity-23种常见设计模式unity版

    总体来说设计模式分为三大类: 创建型模式:共五种:...行为型模式:共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

Global site tag (gtag.js) - Google Analytics