構造方法私有化,也就是說,這個類的構造方法是私有的。比如:
public class person
}
我們不能在外部例項化這個person物件的類!比如:
public class testperson
}
如果我們想在person類的外部使用person類的物件,只能在person類的內部例項化乙個person類的物件,然後呼叫這個物件,而不能再外部例項化新的物件。
public class person
public person getinstance()
}
外部的person類的所有物件只能是對person內部newperson物件的引用。
外部一千一萬個物件也都只能是對person內部newperson物件的引用。
因為外部定義的person類物件沒有例項化能力。這就是單例設計模式,從頭至尾只有乙個物件的例項(單例)。
單例有兩種使用模式:
1餓漢式
class singleton
static singleton getinstance()
}
2懶漢式
class singleton
static singleton getinstance()
}
私有化建構函式的作用
例如 public class diskutil public static func 這樣的類,往往提供一些靜態的函式來生成該類的例項,只要這個類有公開的屬性 方法,得到例項引用的一方還是可以呼叫的,乙個例子是singleton。外面呼叫只能呼叫diskutil 的靜態函式func,而不能a a ...
構造方法私有化
本章目標 了解構造方法私有化的目的 掌握單態設計模式 構造方法私有化 類的封裝性不光體現在對屬性的封裝上,實際上方法也是可以被封裝的,當然,在方法封裝中也包含了對構造方法的封裝。例如 以下的 就是對構造方法進行了封裝。class singleton public void print 程式的意義 單...
構造方法私有化與單例模式
單例模式 乙個類只有乙個例項化的物件,單例模式實現的核心是構造方法私有化,這樣就不能在類的外部建立該類的例項化物件,要想在類的外部使用構造方法私有化的類物件,只能在類的內部例項化乙個類物件,然後通過靜態方法返回該例項物件的引用,在外部進行呼叫。例如 建立乙個構造方法私有化的person類 publi...