Joh*_*ell 6 c# oop naming naming-conventions
这"总是"困扰着我......
假设我有一个接口IFiddle
和另一个接口,除了聚合几个不同的IFiddle
s 之外什么都不做:
public interface IFiddleFrobbler
{
IFiddle Superior { get; }
IFiddle Better { get; }
IFiddle Ordinary { get; }
IFiddle Worse { get; }
IFiddle Crackpot { get; }
}
Run Code Online (Sandbox Code Playgroud)
(具体的IFiddleFrobbler
s和IFiddle
s取决于配置,由工厂创建.)
我一再偶然发现这种"伞"类型的命名 - 我想用描述性的东西来交换"Frobbler".
请赐教,我的"伞"类型的命名方案是什么?
编辑:正如xtofl在评论中指出的那样,实际上比我上面首次公开的语义更多.如果我改为做以下事情,我认为我的需要更清楚:
//
// Used for places where the font width might need
// to be tapered for a rendered text to fit.
//
public interface ITaperableFont
{
Font Font { get; }
Boolean CanTaper { get; }
void Taper();
}
//
// Used for rendering a simple marked-up text in
// a restricted area.
//
public interface ITaperableFonts
{
ITaperableFont Biggest{ get; }
ITaperableFont Big { get; }
ITaperableFont Normal { get; }
ITaperableFont Small { get; }
ITaperableFont Smallest { get; }
}
Run Code Online (Sandbox Code Playgroud)
事实上,我已经在上面的现实生活中将我的问题确定为一个设计缺陷,而不是一个命名问题,几个人在下面指出的气味.
我同意你的意见,认为类,接口或抽象类很难正确.我之前使用过的一些可能的名称是:
Assistant
Composite
XXXCoordinator
Group
我想说,您选择的名称应该取决于您想要实现的目标。在代码示例中,我会说您正在做的是设置评级,所以我可能会称之为IFiddleRating
作为一般性答案,我会说“这取决于”:)我发现用它想要做的事情来命名是个好主意,而不是它“是什么”
归档时间: |
|
查看次数: |
406 次 |
最近记录: |