您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
工厂模式(Factory Pattern)是一种创建型设计模式,它提供了一种在不指定具体类的情况下创建对象的方法。工厂模式的主要目的是将对象的创建过程与客户端代码分离,使得代码更加灵活、可扩展和易于维护。
在Java中,工厂模式可以通过以下三种主要方式实现:
简单工厂模式是最基本的工厂模式实现,它通过一个静态方法来创建对象。客户端只需要知道工厂类即可,而无需了解具体的创建细节。但简单工厂模式不属于23种GOF设计模式之一,因为它使用了全局状态。
public class SimpleFactory {
public static Product createProduct(String type) {
if (type == null) {
return null;
}
if (type.equalsIgnoreCase("A")) {
return new ProductA();
} else if (type.equalsIgnoreCase("B")) {
return new ProductB();
}
return null;
}
}
public interface Product {
void use();
}
public class ProductA implements Product {
@Override
public void use() {
System.out.println("Using Product A");
}
}
public class ProductB implements Product {
@Override
public void use() {
System.out.println("Using Product B");
}
}
工厂方法模式是GOF设计模式之一,它定义了一个用于创建对象的接口,但让子类决定实例化哪个类。这样,工厂方法模式使得一个类的实例化延迟到子类中进行。
public abstract class Factory {
public abstract Product createProduct();
}
public class ConcreteFactoryA extends Factory {
@Override
public Product createProduct() {
return new ProductA();
}
}
public class ConcreteFactoryB extends Factory {
@Override
public Product createProduct() {
return new ProductB();
}
}
public interface Product {
void use();
}
public class ProductA implements Product {
@Override
public void use() {
System.out.println("Using Product A");
}
}
public class ProductB implements Product {
@Override
public void use() {
System.out.println("Using Product B");
}
}
抽象工厂模式是工厂方法模式的升级版,它提供了一个接口,用于创建一系列相关或相互依赖的对象,而不需要指定它们具体的类。抽象工厂模式可以将一系列具有共同主题的单独工厂类组合在一起。
public interface AbstractFactory {
ProductA createProductA();
ProductB createProductB();
}
public class ConcreteFactory implements AbstractFactory {
@Override
public ProductA createProductA() {
return new ProductA();
}
@Override
public ProductB createProductB() {
return new ProductB();
}
}
public interface Product {
void use();
}
public class ProductA implements Product {
@Override
public void use() {
System.out.println("Using Product A");
}
}
public class ProductB implements Product {
@Override
public void use() {
System.out.println("Using Product B");
}
}
以上就是Java中实现工厂模式的三种主要方式。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。