`
dq630dq
  • 浏览: 14267 次
社区版块
存档分类
最新评论

AS3 Design Pattern: Simple Factory 模式

 
阅读更多

AS3 Design Pattern: Simple Factory 模式
2009年07月22日
  Simple Factory模式(又称Static Factory模式),一个Simple Factory生产成品,而对客户端隐藏产品产生的细节。实作时定义一个产品介面(interface),并透过特定静态方法来建立成品。
  假设有一个音乐盒工厂,购买音乐盒的客人不用知道音乐盒是如何制作的,他只要知道如何播放音乐盒就可以了,以 UML 类别图来表示以上的概念:
  
  
  如上图所示的,MusicBoxDemo代表了客户的角色,它只依赖于IMusicBox介面,而不关心特定的实作,实际如何产生IMusicBox的实例由MusicBoxFactory完成,以一个简单的程式来实现上面这个UML类别图
  IMusicBox.as:
  package com.showping.dp
  {
  public interface IMusicBox
  {
  function play():void;
  }
  }PianoBox .as
  public class PianoBox implements IMusicBox
  {  public function play():void
  {
  trace("Piano is playing...");
  } 
  }ViolinBox .as
  public class ViolinBox implements IMusicBox
  {  public function play():void
  {
  trace("Violoin is playing...");
  } }
  createMusicBox.as
  import flash.system.ApplicationDomain;
  public class MusicBoxFactory
  {  public static function createMusicBox(name:String):IMusicBox
  {
  var _str:String="com.showping.dp" + "." + name;
  var _box:Class=ApplicationDomain.currentDomain.getDefinition(_str) as Class;
  return new _box as IMusicBox;
  }
  } Simple_Factory.as:
  package
  {
  import com.showping.dp.IMusicBox;
  import com.showping.dp.MusicBoxFactory;
  import com.showping.dp.PianoBox;
  import com.showping.dp.ViolinBox;
  import flash.display.Sprite; public class Simple_Factory extends Sprite
  {
  private var _piano:PianoBox;
  private var _violin:ViolinBox;
  public function Simple_Factory()
  {
  playMusicBox(MusicBoxFactory.createMusicBox("PianoBox"));
  playMusicBox(MusicBoxFactory.createMusicBox("ViolinBox"));
  }  private function playMusicBox(musicBox:IMusicBox):void
  {
  musicBox.play();
  }
  }
  }AS3有个特点,就是不被引用的类是不会被编译的,这一点跟Java区别很大
  所以在Simple_Factory类里加入了两个引用,看似多余,其实必要,不然程序会报错。
分享到:
评论

相关推荐

    36种最新设计模式整理

    Design Pattern: Simple Factory 模式 Design Pattern: Abstract Factory 模式 Design Pattern: Builder 模式 Design Pattern: Factory Method 模式 Design Pattern: Prototype 模式 Design Pattern: Singleton...

    designpattern:设计图案的使用

    1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory Method) 3)抽象工厂模式(Abstract Factory) 这三种模式从上到下逐步抽象,并且更具一般性。 GOF在《设计模式》一书中将工厂模式分为两类...

    java简易版开心农场源码-DesignPattern:从0开始深入理解设计模式的原理及应用

    DesignPattern 从0开始深入理解设计模式的原理及应用 1.设计原则 1.8.设计原则总结 ​ 学习设计原则是学习设计模式的基础。在实际开发过程中, 并不要求所有代码都遵循设计原则,我们要考虑人力、时间、成本、质量...

    uu-design-pattern:23种设计模式案例

    23种设计模式演示代码文件结构图gof23 |- creational(创建型模式) |- simplefactory 简单工厂模式案例 |- factorymethod 工厂方法模式案例 |- abstractfactory 抽象工厂模式案例 |- builder 建造者模式案例 |- ...

    design-pattern-java.pdf

    六个创建型模式 六个创建型模式 简单工厂模式-Simple Factory Pattern 工厂三兄弟之简单工厂模式(一) 工厂三兄弟之简单工厂模式(二) 工厂三兄弟之简单工厂模式(三) 工厂三兄弟之简单工厂模式(四) 工厂方法...

    java版中国象棋源码-hello-design-pattern:设计模式学习笔记

    hello-design-pattern 设计模式学习笔记,此项目参考《大话设计模式》,只能作为入门级设计模式学习 设计原则 职责单一原则 开放-封闭原则 依赖倒转原则 高层模块不依赖底层模块,两个模块都应该依赖抽象。抽象不...

    Java中的design-patterns::open_book:使用通俗易懂的案例,类图,以及配套学习笔记来详解Java的二十种设计模式!

    :check_mark:简单工厂模式( Simple Factor Pattern ) :memo: , :check_mark:工厂方法模式( Factory Method Pattern ) :memo: , :check_mark:抽象工厂模式( Abstract Factroy Pattern ) :memo: , :check_...

    [源代码] 《易学 设计模式》 随书源代码

    第03章 术业有专攻:简单工厂模式 (SimpleFactory) 第04章 精益求精:工厂方法模式 (FactoryMethod) 第05章 再接再厉:抽象工厂模式 (AbstractFactory) 第06章 孜孜不倦:创建者模式 (Builder) 第07章 照猫画虎:...

    Design.Patterns.Explained.Simply

    This book is fast and simple way to get the idea behind each of the 29 popular design patterns. The book is not tied to any specific programming language and will be good for you as long as you have a...

    Simple-Factory-for-Salary.rar_factory

    Simple Factory Design-Pattern for Calculate Salary for VC6project

    C#设计模式-吕震宇

    本资料来源于吕震宇博客,欢迎访问 ...经过整理,方便大家阅读。...C#设计模式(4)-Simple Factory Pattern C#设计模式(3) - 设计原则(2) C#设计模式(2) - 设计原则(1) C#设计模式(1) - 面向对象基本概念复习

    SimpleFactory.wmv

    Insus.net录制的design Pattern 简单工厂的小影片

    Apress.Pro.Design.Patterns.in.Swift

    The Abstract Factory Pattern Chapter 11. The Builder Pattern Part 3 - The Structural Patterns Chapter 12. The Adapter Pattern Chapter 13. The Bridge Pattern Chapter 14. The Decorator Pattern Chapter...

    DesignPattern.Samples.CSharp:23种面向对象设计模式示例代码(C#实现)

    简单工厂(Simple Factory)模式 ③设计模式的征途-03。工厂方法(Factory Method)模式 ④设计模式的征途-04。抽象工厂(Abstract Factory)模式 ⑤设计模式的征途-05。原型(原型)模式 ⑥设计模式的征途-06。建造...

    Head First Design Patterns 英文原版

    You’ll easily counter with your deep understanding of why Singleton isn’t as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade ...

    Cocoa Fundamentals Guide

    MVC as a Compound Design Pattern 163 Design Guidelines for MVC Applications 165 Model-View-Controller in Cocoa (Mac OS X) 167 Object Modeling 167 Entities 168 Attributes 168 Relationships 169 ...

    Head First Design Patterns

    You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and ...

    go-design-pattern

    去设计模式简单工厂模式(Simple Factory Pattern) ➜ simple_factory (main) ✗ go test -v * .go=== RUN TestCacheFactory_Createredis data: v1mem data: m1--- PASS: TestCacheFactory_Create (0.00s)PASSok ...

    asp.net知识库

    多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. ...

Global site tag (gtag.js) - Google Analytics