我的第一个基于接口的编程时间和一些关于如何设计接口的混淆。关于接口和类设计的建议
我已经创建了关系的接口两个节点之间,就像这样:
public interface IOWLRelation
{
IOWLRelation AddSubClass(IOWLClass parent, IOWLClass child);
}
然后,我创建的类实现这个接口,这样的:
class OWLRelation: IOWLRelation
{
public OWLClass Parent { get; set; }
public OWLClass Child { get; set; }
public IOWLRelation AddSubClass(IOWLClass parent, IOWLClass child)
{
this.Parent = (OWLClass) parent;
this.Child = (OWLClass) child;
return this;
}
}
那么首先:你是否以我声明这些类和接口的方式看到了一个坏习惯? 现在我的困惑是关于我在课堂上定义的那两个公共属性:我是否还需要在接口中定义它们? 另外如果我想添加一个枚举成员到这个类呢? 无论我添加到我的班级,我还应该将其添加到其界面?
更重要的是在方法实现中,我将Interface传递给该方法的参数,它是不好还是不正确?我应该通过界面还是应该通过他们的真实课程?
感谢蒂姆,看起来像我们都住在同一个城市:) - – Bohn 2012-08-07 16:38:27
我需要更多的工作在这方面。为什么在工厂方法中返回'IOwlRelation'而不是简单的'OwlRelation'?我并不是说这是错误的,只是我从来不会想到这一点。 – jp2code 2012-08-07 16:42:45
主要好处是你的OwlRelation类可能有其他的实现细节不适用于这个接口。接口的存在是为了准确定义对于特定类而言重要和相关的内容。消费者不需要知道我们班上发生了什么,甚至是什么。他们需要知道的是,我们有属性可以获得父母和孩子。 – 2012-08-07 16:50:46