我目前正在优化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)仅在创建对象时他们实际上是必需的? –
这些物体是否很昂贵?你是否优化,因为你分析了你的代码? –