小探设计模式(一)
星期五, 9月 19th, 2008 9:54 下午简单工厂
使用一个类负责创建其他类的实例,被创建的实例通常都有共同的父类。借War3打个比喻,Archer 和 Huntress都是战争古书训练。AC和Huntress都是战斗单位(兵),都是“兵”的派生类。
打码:
- //程序入口
- import warunit.*;
- public class Main {
- public static void main(String[] args){
- AncientOfWar Br=new AncientOfWar();
- IWarUnit Ac1=Br.train("Archer");
- IWarUnit Ht1=Br.train("Huntress");
- Ac1.death();
- Ht1.death();
- }
- }
- //战斗单位接口
- package warunit;
- public interface IWarUnit {
- abstract public void born();
- abstract public void death();
- }
- //AC MM
- package warunit;
- public class Archer implements IWarUnit {
- public Archer(){
- this.born();
- }
- public void born(){
- System.out.print("an Archer had been trained\n");
- }
- public void death(){
- System.out.print("an Archer had been killed\n");
- }
- }
- //Huntress
- package warunit;
- public class Huntress implements IWarUnit {
- public Huntress(){
- this.born();
- }
- public void born(){
- System.out.print("an Huntress had been trained\n");
- }
- public void death(){
- System.out.print("an Huntress had been killed\n");
- }
- }
- //BR
- package warunit;
- public class AncientOfWar {
- public IWarUnit train(String type){
- if(type.equalsIgnoreCase("Archer")){
- return new Archer();
- }
- if(type.equalsIgnoreCase("Huntress")){
- return new Huntress();
- }
- return null;
- }
- }
