- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 Java 库提供了一个接口(interface) SomethingClient
和一个实现类 SomethingClientImpl
。正如您所期望的,该接口(interface)包含应用程序将调用的方法。
但是有一个“镜像”接口(interface)SomethingHandler
,其中包含应用程序提供的方法 - 应用程序回调。您可以想象应用程序向库提供此接口(interface)的一个对象 - 可能是从中获取 SomethingClient
的工厂方法。
作为一个没有经验的 Java 设计者,我有兴趣知道是否有一个名称,以及是否/在多大程度上推荐,以提供结合这两个概念的接口(interface)和类:
public interface SomethingClient { /*..*/ }
public interface SomethingHandler { /*..*/ }
public interface ClientAndHandler extends SomethingClient,
SomethingHandler { }
public abstract class ClientAndHandler_Impl implements ClientAndHandler {
final SomethingClient clientImpl_;
ClientAndHandler_Impl(SomethingClient clientImpl) {
this.clientImpl_ = clientImpl;
}
// TODO now all SomethingClient methods are implemented in terms of clientImpl_
// AND, SomethingHandler methods are left abstract so they are implemented by the application
}
其目的是,应用程序编写者可能更愿意从 ClientAndHandler_Impl
抽象类扩展并实现回调方法,也许是根据客户端(传出)方法。这可以相对容易地完成。假设您要这样做,您会给 ClientAndHandler
概念起什么名字?
最佳答案
您当前的代码看起来有点像骨架实现。您可以在massachusetts institute of technology上阅读更多相关信息。或点击dzon .
其背后的想法是为客户端提供默认实现。您可以在 Java-Collections-API 中找到一些示例,例如 AbstractCollection
、AbstractSet
和 AbstractMap
。
接口(interface)ClientAndHandler
是多余的。类 ClientAndHandler_Impl
应该实现 SomethingClient
和 SomethingHandler
。
如果您想明确使用骨架实现,我会将抽象类 ClientAndHandler_Impl
命名为 AbstractClientInteraction
或 ClientInteractionSkeleton
。
关于java - 在 Java 中,你如何称呼这种模式/习惯用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54582544/
我编写的代码主要供个人使用,但我正在考虑发布我最初开发供个人使用的应用程序(科学模拟/可视化)。 我的一个习惯是在类中使用一个main方法来单独测试类的运行情况。我认为这在某种程度上可能是不好的(毫无
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: How do I convince programmers in my team to do TDD? 在从
假设我想测试是否有一个名为“Z”的驱动器。第一步是这样的; Get-PSProvider | Select-Object -Property Drives 这个给我; Drives: ... {C,
这是对 an old answer to a question about the necessity of functools.partial 的一种跟进: 虽然这个答案非常清楚地解释了这种现象及其
Perl 习惯很难改掉。两种语言之间的变量声明、作用域、全局/局部是不同的。是否有一组推荐的 python 语言习语可以使从 perl 编码到 python 编码的过渡不那么痛苦。 细微的变量拼写错误
我是一名优秀的程序员,十分优秀!