gpt4 book ai didi

java - 如何命名这个包含接口(interface)的单类依赖倒置包

转载 作者:行者123 更新时间:2023-12-01 10:51:51 25 4
gpt4 key购买 nike

我正在阅读https://books.google.bg/books/about/Agile_Software_Development.html?id=0HYhAQAAIAAJ&hl=en还有一章介绍包以及如何对包中的类进行分组,如何保持内聚性、稳定性、责任感、独立性等。

在我的应用程序中,我希望将 JSON 转换器保留在架构的外围。我想要一个接口(interface)类,如下所示:

public interface JsonConverter {

InputStream fromJsonObject(JSONObject jsonObject);
InputStream fromJsonArray(JSONArray jsonArray);
JSONObject toJsonObject(OutputStream outputStream);
JSONArray toJsonArray(OutputStream outputStream);

}

我想要另一个包来包含这个接口(interface)的实现 - 一些我可以轻松替换为不同东西的库。

这是书中的一张图片,解释了这一点:

enter image description here

这是该技术解释的图片:

enter image description here

我的问题如下:如何命名包含接口(interface)和json转换器库包的包?

首先,我讨厌匈牙利符号,所以我不想将其称为以 I 开头的名称。其次,我想不出一个不包含多个单词的名称,而且我不知道我是否应该在单词之间使用驼峰式命名或点,或者不使用。

我可以命名这些包吗:

my.app.json.interface
my.app.json.converter

编辑:看起来我不能使用 interface 作为包名称的一部分,所以我仍然不知道如何命名我的包

最佳答案

您正在寻找这样的东西吗?

public interface Converter<X,Y> {

InputStream fromObject(X object);

InputStream fromArray(Y array);

X toObject(OutputStream outputStream);

Y toArray(OutputStream outputStream);
}

public class JsonConverter implements Converter<JSONObject,JSONArray> {

@Override
public InputStream fromObject(JSONObject object) {
return null;
}

@Override
public InputStream fromArray(JSONArray array) {
return null;
}

@Override
public JSONObject toObject(OutputStream outputStream) {
return null;
}

@Override
public JSONArray toArray(OutputStream outputStream) {
return null;
}

}

抽象出接口(interface)的原因是为了以后可以用其他东西替换它。因此,您必须将所有 JSON 内容移至实现中,并将所有可调用内容移至接口(interface)中。泛型是一种参数化结果以保持类型安全的巧妙方法。

关于java - 如何命名这个包含接口(interface)的单类依赖倒置包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33828659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com