千家信息网

java如何实现抽象工厂模式Abstract Factory

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章给大家分享的是有关java如何实现抽象工厂模式Abstract Factory的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在工厂类模式中,如果需要新的类时,需要修
千家信息网最后更新 2025年01月19日java如何实现抽象工厂模式Abstract Factory

这篇文章给大家分享的是有关java如何实现抽象工厂模式Abstract Factory的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在工厂类模式中,如果需要新的类时,需要修改工厂类,这样显然不利于扩展。在抽象工厂模式中,需要扩展一个类时,不需要修改之前的代码就可以实现。

[java]view plain copy print?

  1. /**

  2. * Created by Administrator on 2016/11/18.

  3. */

  4. public interface Worker {

  5. public void work();

  6. }

[java]view plain copy print?

  1. public interface Provider{

  2. public Worker produce();

  3. }

[java]view plain copy print?

  1. public class Doctor implements Worker {

  2. @Override

  3. public void work() {

  4. System.out.println("医生开始上班了");

  5. }

  6. }

[java]view plain copy print?

  1. public class DoctorFactory implements Provider {

  2. @Override

  3. public Worker produce() {

  4. return new Doctor();

  5. }

  6. }

[java]view plain copy print?

  1. public class Student implements Worker {

  2. @Override

  3. public void work() {

  4. System.out.println("学生开始上课了");

  5. }

  6. }

[java]view plain copy print?

  1. public class StudentFactory implements Provider {

  2. @Override

  3. public Worker produce() {

  4. return new Student();

  5. }

  6. }

[java]view plain copy print?

  1. public class Teacher implements Worker {

  2. @Override

  3. public void work() {

  4. System.out.println("教师开始教学了");

  5. }

  6. }

[java]view plain copy print?

  1. public class TeacherFactory implements Provider {

  2. @Override

  3. public Worker produce() {

  4. return new Teacher();

  5. }

  6. }

[java]view plain copy print?

  1. public class Headmaster extends Teacher {

  2. public void work(){

  3. System.out.println("校长开始上班了");

  4. }

  5. }

[java]view plain copy print?

  1. public class HeadmasterFactory implements Provider {

  2. @Override

  3. public Worker produce() {

  4. return new Headmaster();

  5. }

  6. }

[java]view plain copy print?

  1. public class Test {

  2. public static void main(String[] args) {

  3. Provider providers[] = {new DoctorFactory(), new StudentFactory(), new TeacherFactory(), new HeadmasterFactory()};

  4. for (Provider f : providers) {

  5. f.produce().work();

  6. }

  7. }

  8. }


感谢各位的阅读!关于"java如何实现抽象工厂模式Abstract Factory"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

0