text: 在程式設計中，幽靈是指一些生命期很短，沒有內部狀態的物件，這些物件是隻用來進行初始化或呼叫其他生命期較長物件的方法。幽靈是一種反面模式。原始定義是由 Michael Akroyd 於1996年在Object World West Conference中提出：「這些生命期很短的物件就像幽靈馬車或騷靈現象一様，神秘的出現及消失。因此程式碼變的更難維護，而且其中會有不必要的資源浪費。這類反面模式的典型原因是不好的物件設計。」幽靈物件常常可以由其名稱來識別：例如 "manager_"、"controller_"或"start_process"等。有時幽靈物件的建立是因為程式設計者預期需要使用一個複雜的架構，例如在命令模式下同一個方法需適用於客戶端及呼叫端，因此程式設計者將其分為二個階段，只是複雜的架構後來沒有實現，只留下幽靈物件。不能將幽靈物件和其他在MVC等設計模式中使用，生命期較長，有狀態的物件混為一談。若要移除幽靈物件，可直接刪除物件，將其機能直接加入要呼叫幽靈物件的物件中，加入機能的方式可以透過繼承或是混入的方式。
metadata: erhwenkuo/wikipedia-zhtw
metadata: 幽靈 (反面模式)
metadata: https://zh.wikipedia.org/wiki?curid=3140954