以前接触一种 工厂模式 , 算是工厂模式吧
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设计-工厂模式(一)内容请搜索靠谱客的其他文章。
发表评论 取消回复