Java实现简单工厂模式。Java实现简单工厂模式。

  昨天拘留了瞬间设计模式,复习了一下简短工厂模式,做只记,浅淡一下本身本着简易工厂模式的明白。书上运用的是C#,因为我所法的是Java,所以我就用Java实现了相同方方面面。如果发生提的怪的地方,希望会借助出来。简单工厂设计模式可以大概地解啊,你以在一个空口袋去水果店选购水果,你将空袋子给水果店老板,然后针对老板提我急需一致兜子的柚子,十分钟以后。老板递给你一样袋子柚子。你免需明白他们是怎区别柚子和桔子,又是怎么管柚子装上袋子的。你只是待理解您去矣果品店,告诉他若得平等口袋柚子。

  昨天看了瞬间设计模式,复习了转概括工厂模式,做只记,浅淡一下自我本着简易工厂模式的接头。书上以的是C#,因为自所模拟的是Java,所以自己就是用Java实现了一致整整。如果出讲的歇斯底里的地方,希望能凭借出来。简单工厂设计模式可以概括地掌握啊,你用在一个空口袋去水果店购买水果,你管空袋子给水果店老板,然后针对老板讲我待一致袋子的柚子,十分钟以后。老板递给你一样兜子柚子。你切莫需要明白他们是怎分柚子和桔子,又是怎把柚子装上袋子的。你唯有待懂得乃错过了果品店,告诉他你待一致口袋柚子。

  代码可以概括了解也,水果店,水果和柚子三有。如果不谈用户交互界面的话,能与而一直沾的凡水果店,下面这段代码可以知晓也水果店,用来创造水果之。你可以告知他而用哪些的果品,他会晤回您一样兜子水果。

  代码可以大概明了啊,水果店,水果及柚子三有些。如果非开腔用户交互界面的话,能和您一直接触的是鲜果店,下面就段代码可以解为水果店,用来创造水果的。你得告知他若需要什么样的水果,他见面回来您同一袋子水果。

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 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 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));
    }
}
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));
    }
}

  简单工厂模式可以分成这样几片,他尽深之补可以掌握为,如果水果店里新上柠檬,你偏偏需要新建一个柠檬类,然后在果品店之switch里面加分支就够用了,不用去窜外代码。是勿是深感代码之间的关联度少了众多?这样才能够再便民代码的终维护。

  简单工厂模式可分为这样几局部,他极其特别之补益可以掌握也,如果水果店里新上柠檬,你只是待新建一个柠檬类,然后于水果店之switch里面加分支就够了,不用失去修改外代码。是免是深感代码之间的关联度少了无数?这样才会重利于代码的深维护。

图片 1

图片 2

相关文章