我是靠谱客的博主 鳗鱼星星,最近开发中收集的这篇文章主要介绍java factory类_推荐优雅工厂设计模式(Java),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

看此文的友人需要先了解Simple Factory

Static Factory Method

这个工厂设计模式的目的

提供一个封装在名为factory的类中的静态方法,以便隐藏实现逻辑并使客户机代码关注于使用,而不是初始化新对象。

现实中的例子如果原来你的程序是使用Oracle数据库的,现在需要换到mysql数据库中。我们需要实现Simple Factory模式,在该模式中可以调用静态方法来创建到给定数据库的连接。

我们看看维基百科上的翻译Factory是一个用于创建其他对象的对象,工厂是一个函数或方法,它返回一个不同原型或类的对象。

代码实例

我们创建一个interfacePhone 和两个实现类 Huawei and Iphone.

public interface Phone {

String getDescription();

}

public class Huawei implements Phone {

static final String DESCRIPTION = "This is Huawei.";

@Override

public String getDescription() {

return DESCRIPTION;

}

}

public class Iphone implements Phone {

static final String DESCRIPTION = "This is Iphone.";

@Override

public String getDescription() {

return DESCRIPTION;

}

}

下面的枚举表示我们支持的手机类型 (Huawei and Iphone).

public enum PhoneType {

HUAWEI(Huawei::new),

IPHONE(Iphone::new);

private final Supplier constructor;

PhoneType(Supplier constructor) {

this.constructor = constructor;

}

public Supplier getConstructor() {

return this.constructor;

}

}

我们会有个静态方法 getPhone在工厂类 PhonesFactory中 生产不同的PhoneType类

public class PhonesFactory {

public static Phone getPhone(PhoneType type) {

return type.getConstructor().get();

}

}

调用的时候我们会使用 factory class生产出不同的PhoneType.

var huawei = PhonesFactory.getPhone(PhoneType.HUAWEI);

var iphone = PhonesFactory.getPhone(PhoneType.IPHONE);

类图:

适用性

优点:

允许将所有对象创建在一个地方,避免在代码库中传播“new”关键字。

允许编写松散耦合的代码。它的一些主要优点包括更好的可测试性、易于理解的代码、可交换的组件、可伸缩性和隔离特性。

缺点:

如果本来就比较简单的业务。会让代码看起来更复杂

开源项目中用到这个设计的地方:

最后

以上就是鳗鱼星星为你收集整理的java factory类_推荐优雅工厂设计模式(Java)的全部内容,希望文章能够帮你解决java factory类_推荐优雅工厂设计模式(Java)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部