您现在的位置是:主页 > news > 网站外链暴涨/关于进一步优化落实疫情防控措施

网站外链暴涨/关于进一步优化落实疫情防控措施

admin2025/4/29 1:39:57news

简介网站外链暴涨,关于进一步优化落实疫情防控措施,微软网站开发技术,绿色大气5.7织梦网站模版工厂方法模式工厂方法模式,对简单工厂模式进行了升级。我们将水果园比作一个工厂,在简单工厂模式下,水果园是一个具体的工厂,直接用来生产各种各样的水果。那么在工厂方法模式下,水果园是一个抽象工厂,那么…

网站外链暴涨,关于进一步优化落实疫情防控措施,微软网站开发技术,绿色大气5.7织梦网站模版工厂方法模式工厂方法模式,对简单工厂模式进行了升级。我们将水果园比作一个工厂,在简单工厂模式下,水果园是一个具体的工厂,直接用来生产各种各样的水果。那么在工厂方法模式下,水果园是一个抽象工厂,那么…

工厂方法模式

工厂方法模式,对简单工厂模式进行了升级。我们将水果园比作一个工厂,在简单工厂模式下,水果园是一个具体的工厂,直接用来生产各种各样的水果。那么在工厂方法模式下,水果园是一个抽象工厂,那么苹果树,香蕉树等就相当于是具体工厂,生产苹果、香蕉等水果。每有一种新的水果要生产,则需要种植生产这种水果植物,即创建生产具体水果的工厂。

1.相关术语

抽象工厂:工厂方法模式的核心,任何的工厂类需实现这个接口

具体工厂:实现抽象的工厂接口,生产产品,即实例化相应的对象

2.工厂方法模式示意图

405358432a2a7b796d2b0efdcf14888a.png

这里苹果和香蕉的都实现水果接口类中的get()方法,负责生产苹果和香蕉的具体工厂实现水果这个抽象工厂接口。在工厂方法模式下如果想要生产新的水果,即创建新的类。比如生产梨子,需要新建一个梨子类实现水果类的get()方法,创建梨子工厂实现水果工厂来生产梨子。

a7ebb373d482e96bc7af0de9a3851e55.png

3.创建Fruit接口、Apple类等

Fruit(interface):

//水果类

public interface Fruit {

public void get();

}

Apple类:

//苹果类

public class Apple implements Fruit{

//实现并重写父类的get()方法

public void get() {

System.out.println("采集苹果");

}

}

4.创建FruitFactory接口、AppleFactory类等

FruitFactory(interface):

public interface FruitFactory {

public Fruit getFruit();

}

AppleFactory类:

public class AppleFactory implements FruitFactory {

@Override

public Fruit getFruit() {

return new Apple();

}

}

5.生产水果

MainClass:

public class MainClass {

public static void main(String[] args){

//创建苹果工厂

FruitFactory appleFactory = new AppleFactory();

//通过苹果工厂生产苹果实例

Fruit apple = appleFactory.getFruit();

apple.get();

//创建香蕉工厂

FruitFactory bananaFactory = new BananaFactory();

//通过香蕉工厂生产香蕉实例

Fruit banana = bananaFactory.getFruit();

banana.get();

//新添加的梨子工厂

FruitFactory pearFactory = new PearFactory();

Fruit pear = pearFactory.getFruit();

pear.get();

}

}

这里用到Java面向对象的三大特性之一--多态。在新建工厂时,由FruitFactory接口指向具体的工厂(AppleFactory)。通过具体的工厂生产水果时,由Fruit接口指向具体的实例对象(Apple)。

6.结果

e7c4e1e16efe1592621e3b7de88b56c7.png

7.总结

模式来源于生活。工厂方法模式,在简单工厂模式的基础上,对工厂类进行抽象,产生一个抽象工厂接口,将实际创建工作推迟到子类当中。在简单工厂模式下新引进的工厂需要修改具体工厂,在工厂方法模式下不需要修改具体工厂,只需要新建一个类和创建该类的具体工厂,扩展性较强。

标签:FruitFactory,水果,java,get,代码,工厂,Fruit,public

来源: https://www.cnblogs.com/peter-hao/p/FactoryMethod.html