我正在开发一个包含多个控件(或组件)的库。我正在使用基于界面的方法进行类型设计,但最终它让我陷入困扰我很久的问题。如果您使用基于接口的设计方法,您如何命名行为接口?例如,假设你有一些getter setter函数,它们被许多接口使用,它们提供的功能不能用“-able”后缀命名;你会做什么,或者你做什么?感谢...
编辑:例如,我创建了一个这样的界面:
public interface HasText {
public String getText();
public void setText(String text);
}
使用此功能的大多数接口都没有常见的超类型。
答案 0 :(得分:1)
确定您需要不同的行为界面?实现一个行为界面和几个具体行为是不够的?
举一个例子,假设我们有一个真正的野生动物的实现,比如一个带有一些传感器和一大堆行为的类Cat
。现在猫的眼睛传感器报告“鼠标!!”。如果任何存储的Cat
实例喜欢采取行动,那么Collection
将查询Behaviour
Behaviour
个实例class HuntMouse implements Behaviour
实例。假设我们在列表中存储了action()
的实例,这是最合适的,然后猫会在Behaviour
上调用Behaviour
并捕获鼠标。
回到你的问题 - 我认为,一个Behaviour
接口有2-3个方法就足够了,具体的-Behaviour
个对象不需要前缀或后缀。如果需要,我建议HuntMouseBehaviour
(例如HasText
)
最初您要求行为,但您的TextProvider
示例显示了某种功能。在这种特殊情况下,hasText
可能是更好的选择,而provide some text
更适合。{1}}。实现界面会将{{1}}功能添加到类中。
不是问题的答案,而是进一步阅读:List of behavioural design patterns。
(顺便说一下 - 上面我的例子的灵感来自机器人领域的实际实现 - 即使猫不是机器人;)
答案 1 :(得分:1)
将接口命名为正确描述实现它的任何类的单词或短语。 “HasText”是一个很好的例子,因为它描述了实现者(它有一个Text属性)。
使其特定于界面。 “IsAnObject”或“MightHaveData”或“ExistsInCyberspace”不是特定于接口。