工厂模式返回需要其他已经创建的对象的对象

本文关键字:对象 创建 其他 模式 返回 工厂 | 更新日期: 2023-09-27 18:14:09

如何处理工厂对象返回的具体对象依赖于已经创建的另一个对象的情况?

为了使我的存储库工作,我需要有一个连接对象的实例。我不希望每次调用存储库时都创建一个新的连接对象。我该如何处理这种情况?是否将连接对象传递到RepositoryFactory?

IRepository<User> userRepository = RepositoryFactory.GetRepository("user");
 public class UserRepository : IRepository<User>
 {
    public DbConnection Connection { get; set; }
    public UserRepository(DbConnection connection)
    {
        this.Connection = connection;
    }
 }

工厂模式返回需要其他已经创建的对象的对象

在这个特定的示例中,最好每次都启动一个新连接,在使用工作单元方法完成资源使用时关闭并处置。

在MEF中,您将在导入连接对象的工厂对象上放置一个属性。然后,工厂对象可以将该连接对象作为构造函数参数提供给它创建的实例。

连接对象可以由MEF组合构造,也可以由组合容器提供(作为参数传递给container. composeparts)。