圣诞大减价开始了!

将值更改为Reference

问题

因此,您需要用单个对象替换单个类的许多相同实例。

解决方案

将相同的对象转换为单个引用对象。

之前
将值更改为Reference - Before
将值更改为Reference - After

为什么重构

在许多系统中,对象可以分为值和引用。

  • 参考文献:当一个真实世界的对象只对应程序中的一个对象时。参考资料通常是用户/订单/产品等。对象。

  • :一个真实世界的对象对应程序中的多个对象。这些对象可以是日期、电话号码、地址、颜色等等。

参考和值的选择并不总是明确的。有时会有一个简单的值和少量不变的数据。然后就有必要添加可更改的数据,并在每次访问对象时传递这些更改。在这种情况下,有必要将其转换为引用。

好处

  • 对象包含关于特定实体的所有最新信息。如果对象在程序的一部分中发生了更改,则这些更改可以从使用该对象的程序的其他部分访问。

缺点

  • 引用更难实现。

如何重构

  1. 使用用工厂方法替换构造函数在要从中生成引用的类上。

  2. 确定哪个对象将负责提供对引用的访问。当您需要一个对象时,您现在需要从存储对象或静态字典字段中获取它,而不是创建一个新对象。

  3. 确定是提前创建引用还是根据需要动态创建引用。如果对象是预先创建的,请确保在使用前加载它们。

  4. 更改工厂方法,使其返回引用。如果提前创建了对象,则决定如何处理请求不存在的对象时的错误。你可能还需要使用重命名方法通知该方法只返回现有对象。

Baidu
map