공장 방법 모델 과 단순 공장
3157 단어 공장 방법 모델
간단 한 공장 사례:
public class Creator
{
public static function simpleFactory(product:String):IProduct{
if (product=="p1") {
return new Product1();
}
else if (product=="p2") {
return new Product2();
}
}
}
단순 공장 은 확장 이 쉽 지 않 으 며, 신제품 가입 이 필요 하 다 면 simpleFactory () 방법 을 수정 해 야 한다.
공장 방법 사례: 제품 인터페이스 IProduct. as
package{
public interface IProduct
{
function manipulate():void;
}
}
제품 종류 1: Product1. as
package{
internal class Product1 implements IProduct {
public function manipulate():void{
trace(" Product1 manipulate()");
}
}
}
제품 종류 2: Product2. as
package{
internal class Product2 implements IProduct
{
public function manipulate():void{
trace(" Product2 manipulate()");
}
}
}
추상 적 인 생 성 클래스: Creator. as 는 추상 적 인 생 성 클래스 가 있어 서 수요 에 따라 제품 을 예화 할 수 있 기 때문에 우리 가 아무리 신제품 류 를 추가 하 더 라 도 추상 적 인 생 성 클래스 에 계승 되 는 해당 제품 의 생 성 클래스 를 추가 하면 됩 니 다. 이것 은 개방 - 닫 기 원칙 에 부합 합 니 다.
package {
import flash.errors.IllegalOperationError;
public class Creator {
public function doStuff():void {
var product:IProduct = this.factoryMethod();
product.manipulate();//
}
protected function factoryMethod():IProduct {// “ ”, “ ”
throw new IllegalOperationError("Abstract method:must be overridden in a subclass");
return null;
}
}
}
제품 1 종류 만 들 기: CreatorA. as
package {
public class CreatorA extends Creator {
override protected function factoryMethod():IProduct {
trace(" 2");
return new Product1();
}
}
}
제품 2 종류 만 들 기: CreatorB. as
package {
public class CreatorB extends Creator {
override protected function factoryMethod():IProduct {
trace(" 2");
return new Product2();
}
}
}
문서 종류: Main. as
package {
import flash.display.Sprite;
public class Main extends Sprite {
public function Main() {
var cA:Creator = new CreatorA();
var cB:Creator = new CreatorB();
cA.doStuff();
cB.doStuff();
}
}
}
문서 클래스 출력:
제품
Product1 의 manipulate () 를 호출 하 였 습 니 다.
제품
Product2 의 manipulate () 를 호출 하 였 습 니 다.
참고 자료: < ActionScript 3.0 디자인 모델 > 공장 방법 모델
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spark 와 관련 된 디자인 모델 - 창설 형 - 공장 방법 모델즉, 하나의 인 터 페 이 스 를 정의 하여 대상 을 만 드 는 것 이다.그러나 공장 류 를 만 들 때 클 라 이언 트 를 통 해 어떤 공장 을 만 들 지 결정 한다.이렇게 공장 하 나 를 추가 해 야 한다 면 이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.