下面的代碼來自一個名爲'精選評論'的wordpress插件。這是一位備受推崇的開發人員,所以我知道代碼是100%的。爲什麼這樣一起使用實例化和靜態方法?
public static function instance() {
if (! isset(self::$instance)) {
self::$instance = new Featured_Comments;
self::$instance->includes();
self::$instance->init();
self::$instance->load_textdomain();
do_action('featured_comments_loaded');
}
return self::$instance;
}
開發人員使用一個靜態方法public static function instance() {
然後將其實例self::$instance = new Featured_Comments;
爲什麼呢?我對oop很陌生,認爲靜態方法不需要實例化?請有人解釋。
完整的wordpress插件可以在WordPress存儲庫中找到,並被稱爲「精選評論」。謝謝!
看起來像[單身模式](https://en.wikipedia.org/wiki/Singleton_pattern) –
嗨,我明白單身模式可以確保類只能被實例化一次。但是,爲什麼開發人員實例化一個靜態方法?謝謝! – mattnewbie
否則在非靜態類中不會有實例。那是(可怕的)單例的感覺 –