gpt4 book ai didi

java - 客户端/服务器——服务器可能会改变,如何将其抽象掉?

转载 作者:行者123 更新时间:2023-11-29 07:20:36 25 4
gpt4 key购买 nike

我必须在 Java 中实现客户端/服务器架构,其中服务器将来可能会发生变化(好吧,它肯定会在某个时候发生变化)。

考虑这种可能发生的变化的最佳方式是什么?这是我的想法:

1.) 为服务器创建一个接口(interface):

public interface AlarmService {
...
}

2.) 创建一个具体的实现:

public AlarmServiceImpl implements AlarmService {
...
}

3.) 编写静态工厂以获得某种实现

public AlarmServiceFactory {
private AlarmService AlarmServiceFactory() {
return new AlarmServiceImpl();
}
}

这是个好主意吗?或者这太多了?或者也许我不应该考虑这种变化?

最佳答案

有一句口头禅是“始终针对接口(interface)而不是实现编程”。虽然在很多情况下都是如此,但很多时候它是矫枉过正的。但在您的情况下,由于您知道实现会发生变化,并且您对客户端的控制不如对服务器的控制那么多,因此您绝对应该对接口(interface)进行编程。

工厂只会在两种情况下真正有用。第一个是您有多个可用的实现,您需要决定在运行时生成哪个。另一种情况是,如果您到处创建新的 AlarmServiceImpl(),并且实现发生变化。否则,我认为使用工厂是矫枉过正。

所以.. 一定要为客户端/服务器建立一个接口(interface)来进行通信。只有在交换或选择实现不是一两行代码并且分散在各个地方时才使用工厂。

关于java - 客户端/服务器——服务器可能会改变,如何将其抽象掉?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5204267/

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