關於abstract class的建構子
1.1 不要 public, internal protected
使用者要產生一個Class物件必須要有public建構子才能new他
但是abstract class是無法產生的(new他)
所以在abstracl class中寫public建構子是一個錯誤的設計
1.2 使用 protected, internal
protected建構子是要給繼承abstract class的subtype新增時初始化用的
好的設計 :
public abstract class Claim{
protected Claim(){
...
}
}
public abstract class Claim{
internal Claim(){
...
}
}
不好的設計
public abstract class Claim{
public Claim(){
...
}
}
public abstract class Claim{
internal protected Claim(){
...
}
}
至少要有一個Class繼承這個abstract Class,並實作方法
不然就乾脆寫Class就好啦。。。
static class在使用上非常簡單
是簡單開發與物件導向之間的一個折衷解決方法
裏頭只能宣告static的成員(包括變數、方法阿...)
一個static class是密封(sealed)的抽象(abstract)的
不能被複寫的
因此,請保持下列規範
請保守的使用static class
因為只有物件導向語言支援static class
當你使用的語言不支援static class時,請參考下列方法
2.1 宣告這個class為sealed且abstract
2.2 加上一個private的建構子
如下,C++就不支援,要用的話可以寫成這樣
pulbic class File abstract sealed{
private File(){
...
}
}
不過受限於static class的限制,想在static class包山包海也很困難吧