[原创] 实践JAVA(3)

通过<<星际争霸>>学习<<设计模式>>
工厂模式的工厂方法 :
   public class P_FactoryMethod {
    static public Creator Create(String str) {
        if (str.equals("Z")) {
            return new CreatorZ();
        } else if (str.equals("D")) {
            return new CreatorD();
        }
        return null;
    }

    static public void main(String[] args) {
        Creator creatorZ = Create("Z");            // Create a Zealot
        Creator creatorD = Create("D");          // Create a Durgon
        Product productZ = creatorZ.FactoryMethod();
        Product productD = creatorD.FactoryMethod();
        productZ.Operation();
        productD.Operation();
    }   
}

abstract class Creator {
    abstract public Product FactoryMethod();
}
    
class CreatorZ extends Creator {
    public Product FactoryMethod() {
        return new ProductZ();
    }
}

class CreatorD extends Creator {
    public Product FactoryMethod() {
        return new ProductD();
    }
}

abstract class Product {
    abstract void Operation();
}

class ProductZ extends Product {
    public void Operation() {
        System.out.println("A Zealot has been created !");
    }
}

class ProductD extends Product {
    public void Operation() {
        System.out.println("A Durgon has been created !");
    }
}                                                                                       
       

你可能感兴趣的:(java)