概述
以前接触一种 工厂模式 , 算是工厂模式吧
package com.ainy.myinterface{
public interface IAnimal{
function eat( $food : String = "") : void;
}
}
创建一个类继承 -> IAnimal , 例如:
package com.ainy.animals{
import com.ainy.myinterface.IAnimal;
public class Dog implements IAnimal{
public function Dog(){
eat("Gt");
}
public function eat($food:String = "" ):void{
trace("Dog eat "+$food);
}
public function ss() : void{
trace("Dog eat ssss");
}
}
}
创建一个工厂来创建这些 Animals
package com.ainy.factorymanager{
import com.ainy.animals.Cat;
import com.ainy.animals.Dog;
public class AnimalFactory{
private static var $instance : AnimalFactory;
public static function instance() : AnimalFactory{
if($instance == null ) $instance = new AnimalFactory();
return $instance;
}
public function AnimalFactory(){
if($instance != null ){
throw new Error("AnimalFactory 被设计成单例!!!");
}else{
$instance = this;
}
initData();
}
public function getDog() : Dog{
return new Dog();
}
private var cat : Cat;
private function initData() : void{
cat = new Cat();
}
public function getCat() : Cat{
return this.cat;
}
}
}
此方案能最大限度的保证实例 : Cat/Dog的public 方法.在AnimalFactory类中,能够预先初始化一些实例,但是,比较麻烦,每一次新建一个动物实例,都要写入AnimalFactory类中.
转载于:https://blog.51cto.com/aonaufly/1294824
最后
以上就是平常店员为你收集整理的AS3设计-工厂模式(一)的全部内容,希望文章能够帮你解决AS3设计-工厂模式(一)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复