我目前正在優化MVC應用程序,在中有對象創建。這樣在C#中按需創建對象#
private readonly IUnitOfWork _unitOfWork;
private readonly GenericRepository<User> _user;
private readonly GenericRepository<UserDevice> _userDevice;
public UsersController()
{
_unitOfWork = new UnitOfWork();
_user = new GenericRepository<User>(_unitOfWork);
_userDevice = new GenericRepository<UserDevice>(_unitOfWork);
}
這東西很簡單的例子,但其實有很多對象創造,甚至還有隻需要一個對象function
但其他對象被創建爲好。我想實現一個模式,只在需要時才創建對象。
有一件事是在我的腦海中使用Abstract Factory Pattern
所有的對象應該創建,但我不知道如何實現。你們可以爲這個問題提出任何其他解決方案,使用模式只是我的想法。由於
編輯
按需指使用在method
對象,就像我只需要_user
對象,那麼爲什麼會出現_userDevice
創造?
「對象應該只在需要時創建」 - 在哪裏?什麼時候?你的問題不清楚。 「需要時」是一個不明確的短語,因爲它可能意味着:1)在執行過程中的某個角錢,或2)在你的代碼中,不會在每個代碼路徑中被調用,但仍然是靜態定義在碼。 –
如果你的課程需要很多對象,但只是偶爾使用它,很可能違反[單一職責原則](https://en.wikipedia.org/wiki/Single_responsibility_principle)。您可能需要重新審視您的設計,並牢記[SOLID](https://en.wikipedia.org/wiki/SOLID_(面向對象設計))原則。但是,要真正回答您的問題,是否考慮使用[懶惰](https://msdn.microsoft.com/en-us/library/dd642331(v = vs.110).aspx)僅在創建對象時他們實際上是必需的? –
這些物體是否很昂貴?你是否優化,因爲你分析了你的代碼? –