据我所知,对象池是一种创建型模式,而享元是一种结构型模式,但实际上我不能看到它们之间有太大的区别。请问有人能向我解释一下它们之间的区别以及在实现中何时使用每个模式?
据我所知,对象池是一种创建型模式,而享元是一种结构型模式,但实际上我不能看到它们之间有太大的区别。请问有人能向我解释一下它们之间的区别以及在实现中何时使用每个模式?
一个区别在于,轻量级对象通常是不可变的实例,而从池中获取的资源通常是可变的。
因此,你创建轻量级对象是为了避免反复创建包含相同状态的多个对象实例的成本(因为它们都是相同的,您只需创建一个并在应用程序的所有位置重复使用它),而池中的资源是特定的资源,您要单独控制并可能具有不同的状态,但您不想支付创建和销毁的成本,因为它们都是在相同状态下初始化的。
至少有两个主要区别: