我是靠谱客的博主 平常店员,最近开发中收集的这篇文章主要介绍AS3设计-工厂模式(一),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

以前接触一种 工厂模式 , 算是工厂模式吧j_0057.gif

  1. package com.ainy.myinterface{

  2.    public interface IAnimal{

  3.        function eat( $food : String = "") : void;

  4.    }

  5. }

创建一个类继承 -> IAnimal , 例如:

  1. package com.ainy.animals{

  2.    import com.ainy.myinterface.IAnimal;

  3.    public class Dog implements IAnimal{

  4.        public function Dog(){

  5.            eat("Gt");

  6.        }

  7.        public function eat($food:String = "" ):void{

  8.            trace("Dog eat "+$food);

  9.        }

  10.        public function ss() : void{

  11.            trace("Dog eat  ssss");

  12.        }

  13.    }

}

创建一个工厂来创建这些 Animals


  1. package com.ainy.factorymanager{

  2.    import com.ainy.animals.Cat;

  3.    import com.ainy.animals.Dog;


  4.    public class AnimalFactory{

  5.        private static var $instance : AnimalFactory;

  6.        public static function instance() : AnimalFactory{

  7.            if($instance == null ) $instance = new AnimalFactory();

  8.            return $instance;

  9.        }

  10.        public function AnimalFactory(){

  11.            if($instance != null ){

  12.                throw new Error("AnimalFactory 被设计成单例!!!");

  13.            }else{

  14.                $instance = this;

  15.            }

  16.            initData();

  17.        }

  18.        public function getDog() : Dog{

  19.            return new Dog();

  20.        }

  21.        private var cat : Cat;

  22.        private function initData() : void{

  23.            cat = new Cat();

  24.        }

  25.        public function getCat() : Cat{

  26.            return this.cat;

  27.        }

  28.    }

  29. }

    此方案能最大限度的保证实例 : Cat/Dog的public 方法.在AnimalFactory类中,能够预先初始化一些实例,但是,比较麻烦,每一次新建一个动物实例,都要写入AnimalFactory类中.



转载于:https://blog.51cto.com/aonaufly/1294824

最后

以上就是平常店员为你收集整理的AS3设计-工厂模式(一)的全部内容,希望文章能够帮你解决AS3设计-工厂模式(一)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(30)

评论列表共有 0 条评论

立即
投稿
返回
顶部