Java完结轻巧工厂情势

  明天看了一下设计情势,复习了1晃简便工厂格局,做个笔记,浅淡一下本人对简易工厂情势的敞亮。书上使用的是C#,因为本身所学的是Java,所以本人就用Java完毕了2次。假如有讲的畸形的地点,希望能够提出来。轻松工厂设计情势能够归纳地知道为,你拿着三个空口袋去水果店买水果,你把空袋子给水果店老董,然后对业主讲作者急需一兜子的朱栾,10分钟今后。老董递给你一口袋红柚。你没有供给掌握她们是怎么差别文旦和柑儿,又是怎么把慈利甜柚装进袋子的。你只需求知道你去了水果店,告诉她你须要一袋橘红。

  代码能够归纳了然为,水果店,水果和梁平柚三局地。假使不谈用户交互分界面包车型客车话,能和你直接触及的是鲜果店,上边这段代码能够领会为水果店,用来创建水果的。你可以告知她你须求哪些的鲜果,他会回去您1袋水果。

public class FruitsFactory {

    public static Fruit createFruit(String name){
        Fruit fruit = null;
        switch(name){
        case "柚子":
            fruit = new Grapefruit();
            break;
        case "橘子":
            fruit = new Tangerine();
            break;
        }
        return fruit;
    }
}

下边那个类是三个抽象类,能够明白为水果的总称,水果店里边的具有的水果的交集。

public abstract class Fruit {
    protected double weight;
    public double getWeight() {
        return weight;
    }
    public void setWeight(double weight) {
        this.weight = weight;
    }
    public abstract void getResult();
}

上面就是具体的瓜果,抽象类的现实贯彻。

public class Grapefruit extends Fruit {

    private double price=5.5;
    @Override
    public void getResult() {
        System.out.println("一袋柚子的价钱是:"+(weight*price));
    }

}

public class Tangerine extends Fruit {

    private double price=3.5;

    public void getResult() {
        System.out.println("一袋橘子的价钱是:"+(weight*price));
    }
}

  轻松工厂形式能够分为这样几片段,他最大的便宜能够领悟为,如若水果店里新进柠檬,你只供给新建1个柠檬类,然后在水果店的switch里面扩大分支就够了,不用去修改别的代码。是还是不是感到代码之间的关联度少了繁多?那样技巧更有益于代码的末梢维护。

图片 1

相关文章