如此使用單例模式!

2021-08-29 19:52:50 字數 700 閱讀 9638

最近拿到乙個專案,大致掃了一下,發現大多數的**都是如下的結構:

public class user

public void setusername(string username)

}public class userrule

return instance;

}public user adduser(string username)

}

先不說問題,來看看這樣做的一些可取之處:

1、設計簡單。系統的設計在這樣的結構下其實就是貧血類的設計,剩下的就是在rule類中增加相應的方法。

2、各個模組的開發可以同時進行。各人根據要求定義好模組相應的類,剩下的就是缺啥補啥了。

然後說問題:

1、首先該單例實現就有問題了,這樣的實現並不能保證執行緒安全。不過好在其實這個userrule本身也沒有字段之類的東西,不單例其實也沒多大影響。所以我想這個單例丟在這裡估計只是為了寫**的時候方便點。

2、這種做法應對需求變化的結果就是不斷的在userrule中新增新的滿足需求的方法,最後天知道這個方法到底幹嘛的。

3、我想這樣的系統應該效能上很差了,可奇怪客戶用到現在居然沒一點效能上的反饋。不過效能這塊只是我的乙個感覺,還沒有對這樣的系統做乙個壓力測試,無法提供實際情況。

不知道還有沒有其他的缺點,歡迎各位來分析分析。

單例模式 單例模式

餓漢式 急切例項化 public class eagersingleton 2.宣告靜態成員變數並賦初始值 類初始化的時候靜態變數就被載入,因此叫做餓漢式 public static eagersingleton eagersingleton new eagersingleton 3.對外暴露公共的...

單例 單例模式

簡單的實現乙個單例 instancetype sharedinstance return instance 真正的單例模式 myclass sharedinstance return instance id allocwithzone nszone zone return nil id copywi...

C 單例模式使用

一直以來都沒有細細的看過設計模式,今天借助部落格來記錄一下學習過程。單例模式,是這些設計模式中最常用的一種模式,之前我們可能使用過全域性或者靜態變數的方式,現在可以考慮單例模式了。單例模式主要是在一些工具類使用較多,因為工具類基本不用儲存太多的跟自身有關的資料,這種情況下,如果每次都new乙個物件,...