在坦克工厂里甄选坦克类型,在坦克工厂里选择坦克类型

  简单工厂形式,正是有3个工厂类,负责生成所需求的实体类。

  简单工厂形式,就是有一个工厂类,负责生成所急需的实体类。

  那让本人纪念了红警,在红警里,如若急需造一辆坦克,必要先有贰个战车工厂,在坦克工厂里选拔坦克类型,然后坦克工厂才会转变所须要的坦克。

  那让本身回想了红警,在红警里,借使急需造壹辆坦克,须要先有一个战车工厂,在坦克工厂里甄选坦克类型,然后坦克工厂才会变动所供给的坦克。

  不多说平昔上代码。

  不多说平昔上代码。

  首先有个坦克类Panzer(哈哈小编的侠盗猎车就好像就记得那样2个作弊秘诀了)

  首先有个坦克类Panzer(哈哈作者的侠盗猎车就像就记得那样3个作弊法门了)

public class Panzer {
    protected String name;
    public void move(){
        System.out.println(name+"移动了!");
    }    
}
public class Panzer {
    protected String name;
    public void move(){
        System.out.println(name+"移动了!");
    }    
}

  有七个类型的坦克,八个是灰熊坦克,3个是光凌坦克

  有四个品种的坦克,三个是灰熊坦克,一个是光凌坦克

public class BearPanzer extends Panzer{
    public BearPanzer(){
        name="灰熊坦克";
        System.out.println(name+"制造完成");
    }
}

public class EdgelightPanzer extends Panzer{
    public EdgelightPanzer(){
        name="光棱坦克";
        System.out.println(name+"制造完成");
    }
}
public class BearPanzer extends Panzer{
    public BearPanzer(){
        name="灰熊坦克";
        System.out.println(name+"制造完成");
    }
}

public class EdgelightPanzer extends Panzer{
    public EdgelightPanzer(){
        name="光棱坦克";
        System.out.println(name+"制造完成");
    }
}

  提前准备好我们的坦克工厂,借使大家光造坦克,就叫它PanzerFactory吧

  提前准备好大家的坦克工厂,如果我们光造坦克,就叫它PanzerFactory吧

public class PanzerFactory {
    public static Panzer createPanzer(String panzerName){
        Panzer panzer=null;
        switch (panzerName) {
        case "灰熊坦克":
            panzer=new BearPanzer();
            break;
        case "光棱坦克":
            panzer=new EdgelightPanzer();
            break;
        default:
            break;
        }
        return panzer;
    }
}
public class PanzerFactory {
    public static Panzer createPanzer(String panzerName){
        Panzer panzer=null;
        switch (panzerName) {
        case "灰熊坦克":
            panzer=new BearPanzer();
            break;
        case "光棱坦克":
            panzer=new EdgelightPanzer();
            break;
        default:
            break;
        }
        return panzer;
    }
}

   哈哈,终于化解,先开一盘游玩试试

   哈哈,终于解决,先开一盘游玩试试

public class RedAlert {
    public static void main(String[] args) {
        System.out.println("开局......");

        PanzerFactory factory=new PanzerFactory();
        System.out.println("开始造坦克");
        Panzer panzer1=factory.createPanzer("灰熊坦克");
        Panzer panzer2=factory.createPanzer("光棱坦克");
        panzer1.move();
        panzer2.move();

        System.out.println("YOU WIN!");
    }
}
public class RedAlert {
    public static void main(String[] args) {
        System.out.println("开局......");

        PanzerFactory factory=new PanzerFactory();
        System.out.println("开始造坦克");
        Panzer panzer1=factory.createPanzer("灰熊坦克");
        Panzer panzer2=factory.createPanzer("光棱坦克");
        panzer1.move();
        panzer2.move();

        System.out.println("YOU WIN!");
    }
}

 

 

 游戏界面(-_-|||):

 游戏界面(-_-|||):

图片 1

图片 2

  游戏胜利呀(话说从前玩也没怎么赢过,最近代码在手,天下本身有2333叁).

  游戏胜利呀(话说此前玩也没怎么赢过,近期代码在手,天下本人有2333三).

  思索时间:

  考虑时间:

  为何要用工厂形式?有啥好处?

  为啥要用工厂格局?有啥样便宜?

  首先工厂方式选用了多态,创造的类都是Panzer的子类,当然,接口也是一律的道理,1样适用,那样能够经过父类的引用直线子类。

  首先工厂情势采取了多态,成立的类都以Panzer的子类,当然,接口也是均等的道理,壹样适用,这样可以通过父类的引用直线子类。

  工厂形式封装了对类的创办,那样能够减去大家创制类对象时的失实,还能在类创立时举行部分别样的操纵比如打字与印刷log等。

  工厂方式封装了对类的创始,那样可以减掉大家创设类对象时的失实,仍是能够在类创设时开始展览局部其余的支配比如打字与印刷log等。

 

 

相关文章