package com.zshh.designpattern.factorymeth;
public class Jmain {
public static void main(String[] args) {
Client sc = new ConcreteClient();
sc.AnOperation();
}
}
package com.zshh.designpattern.factorymeth;
public class ConcreteClient extends Client{
@Override
protected void FactoryMethod() {
// TODO Auto-generated method stub
obj = new Create_Product("JEEP");
}
}
package com.zshh.designpattern.factorymeth;
public class Create_Product extends Product { //创建一个Product的子类。
private String name;
public Create_Product(String name){
this.name = name;
}
@Override
public String hook_method() {
return name;
}
}
</pre><pre name="code" class="java">/******************************以下是框架层***********************************************/
</pre><pre name="code" class="java">package com.zshh.designpattern.factorymeth;
//抽象的父类.
public abstract class Product {
public void template_method()
{
System.out.println(hook_method());
}
public abstract String hook_method();
}
package com.zshh.designpattern.factorymeth;
public abstract class Client {
protected Product obj = null;
public void AnOperation(){
FactoryMethod();
obj.template_method();
}
protected abstract void FactoryMethod();
}