> 请确保您要对原型进行[深克隆或浅克隆](https://howtodoinjava.com/java/cloning/a-guide-to-object-cloning-in-java/ "A guide to object cloning in java"),因为两者在运行时的行为不同。 如果需要深度复制,则可以使用在内存序列化中使用此处给出的良好技术[。](https://howtodoinjava.com/java/serialization/how-to-do-deep-cloning-using-in-memory-serialization-in-java/ "How to do deep cloning using in memory serialization in java")
## 原型模式–参与者
## 原型模式 – 参与者
***原型**:这是如上所述的实际对象的原型。
***原型注册表**:用作注册表服务,使所有原型都可以使用简单的字符串参数进行访问。
...
...
@@ -26,7 +26,7 @@ Implementation
让我们通过一个例子来了解这种模式。 我正在创建一个娱乐应用程序,该应用程序将非常频繁地需要 Movie,Album 和 Show 类的实例。 我不想每次都创建它们的实例,因为这很昂贵。 因此,我将创建他们的原型实例,每当我需要一个新实例时,我都将克隆该原型。
在解决现实问题的任何应用程序中,单元测试中都存在问题–是最不希望的事情。 [好的书面测试](//howtodoinjava.com/best-practices/unit-testing-best-practices-junit-reference-guide/)是资产,而不好的书面测试是您应用程序的负担。 在本教程中,我们将学习**单元测试 FIRST 原理**,它可以使您的测试脱颖而出,并确保其收益超过成本。
在解决现实问题的任何应用程序中,单元测试中都存在问题 – 是最不希望的事情。 [好的书面测试](//howtodoinjava.com/best-practices/unit-testing-best-practices-junit-reference-guide/)是资产,而不好的书面测试是您应用程序的负担。 在本教程中,我们将学习**单元测试 FIRST 原理**,它可以使您的测试脱颖而出,并确保其收益超过成本。
1. 创建包含`[StringReader](https://docs.oracle.com/javase/8/docs/api/java/io/StringReader.html)`并引用 XML 字符串的`[org.xml.sax.InputSource](https://docs.oracle.com/javase/7/docs/api/org/xml/sax/InputSource.html)`。