我無法確定下面這兩個示例的優點和缺點。理想情況下,我想知道它的重量高達最佳的設計方案:空派生類與Vs類型屬性
例1(類型屬性):
public abstract class Animal : /* all relevant interfaces*/
{
/*
All necessary implementations
*/
}
Public class Dog : Animal
{
Public string Name {get; set;}
Public Breed Type {get; set;}
/*
All necessary implementations
*/
}
Public Type Breed
{
Bulldog,
Chihuahua,
Labrador,
/*
So on……
This can grow without limitation,
you dno't know how much it will grow into, or
what breed you will have tomorrow e.g BulldogChihuahuaCross,
or BulldogLabradorCross.
*/
}
例2(空派生類):
public abstract class Animal : /* all relevant interfaces*/
{
/*
All necessary implementations
*/
}
Public class Dog : Animal
{
Public string Name {get; set;}
/*
All necessary implementations
*/
}
Public class Bulldog : Dog
{
/* Empty Class */
}
Public class Chihuahua: Dog
{
/* Empty Class */
}
Public class Labrador: Dog
{
/* Empty Class */
}
編輯:
在示例1創建Dog的實例,並將其類型指定爲屬性,在示例2中創建該特定類型的實例。
我正在尋找一些深入的論點,可擴展性,可維護性,在CPU上的成本,如果有1000種品種,運行查詢等費用。
這實際上是一個非常好的問題,大多數人都懶得問。我認爲對你來說,這是一個很好的答案,但是直到今天晚些時候,你纔沒有時間寫出來。敬請關注。 –
@ JimL.I期待着您的回答。 – Jegan
@JimL。或者像費馬特說:我有一個很好的證據,但這裏的邊際太窄了,不能寫下來;-) –