希赛考试网
首页 > 软考 > 软件设计师

抽象工厂模式代码

希赛网 2024-06-15 17:23:29

抽象工厂模式是一种设计模式,也被称为工厂的工厂。它的目的是创建一组相关对象,而无需指定它们的具体类。

在抽象工厂模式中,有一个抽象工厂,它定义了创建一组相关对象的接口,同时也有多个具体工厂,它们实现了抽象工厂的接口并创建了具体类的对象。

以下是抽象工厂模式代码示例:

```java

// 抽象产品 interface

public interface Animal {

void move();

}

// 具体产品 class

public class Cat implements Animal {

@Override

public void move() {

System.out.println("Cat is walking");

}

}

// 具体产品 class

public class Dog implements Animal {

@Override

public void move() {

System.out.println("Dog is running");

}

}

// 抽象工厂 class

public interface AnimalFactory {

Animal createAnimal();

}

// 具体工厂 class

public class CatFactory implements AnimalFactory {

@Override

public Animal createAnimal() {

return new Cat();

}

}

// 具体工厂 class

public class DogFactory implements AnimalFactory {

@Override

public Animal createAnimal() {

return new Dog();

}

}

// client class

public class Client {

public static void main(String[] args) {

AnimalFactory catFactory = new CatFactory();

AnimalFactory dogFactory = new DogFactory();

Animal cat = catFactory.createAnimal();

Animal dog = dogFactory.createAnimal();

cat.move();

dog.move();

}

}

```

在上面的示例中,我们有一个抽象工厂 interface AnimalFactory 和2个具体工厂类 CatFactory 和 DogFactory。每个具体工厂类都实现了 AnimalFactory 的 createAnimal() 方法,以创建 Cat 和 Dog 实例。

此设计模式的优点是:

1. 可以隐藏对象的具体类型并使客户端根据接口使用它们。

2. 与工厂方法相比,它提供了一种简单的方法来创建对象相关的家族(也就是一组相关的对象)而无需指定其具体类。

缺点是:

1. 新加入的产品家族困难,需要修改工厂接口及其所有实现。

2. 在某些场景下,可能难以支持新类型的产品。

总的来说,抽象工厂模式是一个重要的设计模式,它帮助我们创建一组相关对象而无需指定它们的具体类型,使代码更可扩展和可维护。但是,在应用它之前需要认真考虑它是否适合当前的需求。

扫码咨询 领取资料


软考.png


软件设计师 资料下载
备考资料包大放送!涵盖报考指南、考情深度解析、知识点全面梳理、思维导图等,免费领取,助你备考无忧!
立即下载
软件设计师 历年真题
汇聚经典真题,展现考试脉络。精准覆盖考点,助您深入备考。细致解析,助您查漏补缺。
立即做题

软考资格查询系统

扫一扫,自助查询报考条件