幽灵 (反面模式) 在程式設計中幽灵poltergeist是指一些生命期很短沒有內部狀態的物件這些物件是只用來進行初始化或調用其他生命期較長物件的方法幽灵是一種反面模式原始定義是由 Michael Akroyd 於年在Object World West Conference中提出 這些生命期很短的物件就像幽灵馬車或騷靈現象一様神祕的出現及消失因此代碼變的更難維護而且其中會有不必要的資源浪費這類反面模式的典型原因是不好的物件設計 幽灵物件常常可以由其名稱來識別例如 managercontroller或startprocess等 有時幽灵物件的創建是因為程式設計者預期需要使用一個複雜的架構例如在命令模式下同一個方法需適用於客戶端及調用端因此程式設計者將其分為二個階段只是複雜的架構後來沒有實現只留下幽灵物件不能將幽灵物件和其他在MVC等設計模式中使用生命期較長有狀態的物件混為一談 若要移除幽灵物件可直接刪除物件將其機能直接加入要調用幽灵物件的物件中加入機能的方式可以透過繼承或是混入mixin的方式