我的第一個基於接口的編程時間和一些關於如何設計接口的混淆。關於接口和類設計的建議
我已經創建了關係的接口兩個節點之間,就像這樣:
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