Java中工厂方法模式具体应用场景有哪些?

2026-05-23 22:041阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1012个文字,预计阅读时间需要5分钟。

Java中工厂方法模式具体应用场景有哪些?

在阐述工厂方法模式之前,先简单了解下简单工厂模式。工厂方法模式实际上是在简单工厂模式的基础上增加了一些增强。简单工厂模式:有一个专门用于创建对象的类,它根据传入的参数来决定创建哪个类的实例。增强后的工厂方法模式:在简单工厂模式的基础上,引入了工厂接口和具体工厂类,使得创建对象的过程更加灵活。简单工厂模式:有一个专门用于创建对象的类,它根据传入的参数来决定创建哪个类的实例。增强后的工厂方法模式:引入工厂接口和具体工厂类,使得创建对象的过程更加灵活。

在说工厂方法模式之前,先了解一下简单工厂模式。工厂方法模式其实是在简单工厂上面做了一些增强。简单工厂模式:有一个专门的类来生产其他类的实例,生产的这些实例有一个共同父类。这个跟我们的多态有一点像。例子:

假如我们有一个鼠标工厂,这个工厂既可以生产联想鼠标,又可以生产宏碁鼠标。 代码如下: 1、鼠标工厂(可以生产联想鼠标和宏碁鼠标)

public class MouseFactory { /** * 生产一个鼠标 * @param i * @return */ public Mouse createMouse(int i){ Mouse mouse = null; switch (i){ case 1: mouse = new LenovoMouse(); break; case 2: mouse = new AcerMouse(); break; } return mouse; }}

2、鼠标接口(有一个getName()的方法)

public interface Mouse { void getName();}

3、联想鼠标实现类(实现鼠标接口,可以生产联想鼠标)

public class LenovoMouse implements Mouse { @Override public void getName() { System.out.println("这个是联想鼠标"); }}

4、宏碁鼠标实现类(实现鼠标接口,可以生产宏碁鼠标)

public class AcerMouse implements Mouse { @Override public void getName() { System.out.println("这个是宏碁鼠标"); }}

5、客户端(需要鼠标的人,可以买联想鼠标也可以买宏碁鼠标)

@SpringBootTestclass FactoryApplicationTests { @Test void contextLoads() { MouseFactory factory = new MouseFactory(); Mouse mouse = factory.createMouse(2); mouse.getName(); }

这样简单工厂就算实现了,可以传入1和2让工厂分别生成联想鼠标和宏碁鼠标。接下来我们在简单工厂的基础上看看工厂方法模式。 工厂方法模式:定义一个专门生产其他类实例的接口,让子类决定具体生产哪个类的实例。

例子: 有一个鼠标工厂开了两个子公司,一个是联想鼠标工厂用来专门生产联想鼠标,另一个是宏碁鼠标工厂用来专门生产宏碁鼠标。 代码如下:

Java中工厂方法模式具体应用场景有哪些?

1、鼠标工厂接口:

public interface MouseFactory { Mouse createMouse();}

2、联想鼠标工厂(用来生产联想鼠标)

public class LenovoMouseFactory implements MouseFactory { @Override public Mouse createMouse() { return new LenovoMouse(); }}

3、宏碁鼠标工厂(用来生产宏碁鼠标)

public class AcerMouseFactory implements MouseFactory { @Override public Mouse createMouse() { return new AcerMouse(); }}

鼠标类跟简单工厂一样,复制如下:

4、鼠标接口(有一个getName()的方法)

public interface Mouse { void getName();}

5、联想鼠标实现类(实现鼠标接口,可以生产联想鼠标)

public class LenovoMouse implements Mouse { @Override public void getName() { System.out.println("这个是联想鼠标"); }}

6、宏碁鼠标实现类(实现鼠标接口,可以生产宏碁鼠标)

public class AcerMouse implements Mouse { @Override public void getName() { System.out.println("这个是宏碁鼠标"); }}

7、客户端(需要鼠标的人,可以买联想鼠标也可以买宏碁鼠标)

@SpringBootTestclass FactoryApplicationTests { @Test void demo(){ LenovoMouseFactory lenovoMouseFactory = new LenovoMouseFactory(); Mouse lenovoMouse = lenovoMouseFactory.createMouse(); lenovoMouse.getName(); AcerMouseFactory acerMouseFactory = new AcerMouseFactory(); Mouse acerMouse = acerMouseFactory.createMouse(); acerMouse.getName(); }}

本文共计1012个文字,预计阅读时间需要5分钟。

Java中工厂方法模式具体应用场景有哪些?

在阐述工厂方法模式之前,先简单了解下简单工厂模式。工厂方法模式实际上是在简单工厂模式的基础上增加了一些增强。简单工厂模式:有一个专门用于创建对象的类,它根据传入的参数来决定创建哪个类的实例。增强后的工厂方法模式:在简单工厂模式的基础上,引入了工厂接口和具体工厂类,使得创建对象的过程更加灵活。简单工厂模式:有一个专门用于创建对象的类,它根据传入的参数来决定创建哪个类的实例。增强后的工厂方法模式:引入工厂接口和具体工厂类,使得创建对象的过程更加灵活。

在说工厂方法模式之前,先了解一下简单工厂模式。工厂方法模式其实是在简单工厂上面做了一些增强。简单工厂模式:有一个专门的类来生产其他类的实例,生产的这些实例有一个共同父类。这个跟我们的多态有一点像。例子:

假如我们有一个鼠标工厂,这个工厂既可以生产联想鼠标,又可以生产宏碁鼠标。 代码如下: 1、鼠标工厂(可以生产联想鼠标和宏碁鼠标)

public class MouseFactory { /** * 生产一个鼠标 * @param i * @return */ public Mouse createMouse(int i){ Mouse mouse = null; switch (i){ case 1: mouse = new LenovoMouse(); break; case 2: mouse = new AcerMouse(); break; } return mouse; }}

2、鼠标接口(有一个getName()的方法)

public interface Mouse { void getName();}

3、联想鼠标实现类(实现鼠标接口,可以生产联想鼠标)

public class LenovoMouse implements Mouse { @Override public void getName() { System.out.println("这个是联想鼠标"); }}

4、宏碁鼠标实现类(实现鼠标接口,可以生产宏碁鼠标)

public class AcerMouse implements Mouse { @Override public void getName() { System.out.println("这个是宏碁鼠标"); }}

5、客户端(需要鼠标的人,可以买联想鼠标也可以买宏碁鼠标)

@SpringBootTestclass FactoryApplicationTests { @Test void contextLoads() { MouseFactory factory = new MouseFactory(); Mouse mouse = factory.createMouse(2); mouse.getName(); }

这样简单工厂就算实现了,可以传入1和2让工厂分别生成联想鼠标和宏碁鼠标。接下来我们在简单工厂的基础上看看工厂方法模式。 工厂方法模式:定义一个专门生产其他类实例的接口,让子类决定具体生产哪个类的实例。

例子: 有一个鼠标工厂开了两个子公司,一个是联想鼠标工厂用来专门生产联想鼠标,另一个是宏碁鼠标工厂用来专门生产宏碁鼠标。 代码如下:

Java中工厂方法模式具体应用场景有哪些?

1、鼠标工厂接口:

public interface MouseFactory { Mouse createMouse();}

2、联想鼠标工厂(用来生产联想鼠标)

public class LenovoMouseFactory implements MouseFactory { @Override public Mouse createMouse() { return new LenovoMouse(); }}

3、宏碁鼠标工厂(用来生产宏碁鼠标)

public class AcerMouseFactory implements MouseFactory { @Override public Mouse createMouse() { return new AcerMouse(); }}

鼠标类跟简单工厂一样,复制如下:

4、鼠标接口(有一个getName()的方法)

public interface Mouse { void getName();}

5、联想鼠标实现类(实现鼠标接口,可以生产联想鼠标)

public class LenovoMouse implements Mouse { @Override public void getName() { System.out.println("这个是联想鼠标"); }}

6、宏碁鼠标实现类(实现鼠标接口,可以生产宏碁鼠标)

public class AcerMouse implements Mouse { @Override public void getName() { System.out.println("这个是宏碁鼠标"); }}

7、客户端(需要鼠标的人,可以买联想鼠标也可以买宏碁鼠标)

@SpringBootTestclass FactoryApplicationTests { @Test void demo(){ LenovoMouseFactory lenovoMouseFactory = new LenovoMouseFactory(); Mouse lenovoMouse = lenovoMouseFactory.createMouse(); lenovoMouse.getName(); AcerMouseFactory acerMouseFactory = new AcerMouseFactory(); Mouse acerMouse = acerMouseFactory.createMouse(); acerMouse.getName(); }}