设计模式之-原型模式,快速掌握原型模式,通俗易懂的理解原型模式以及使用场景
2023-12-23 06:15:13
一、什么是原型模式
原型模式是一种创建型设计模式,它允许通过复制现有对象来创建新的对象,而无需通过调用构造函数来创建。原型模式通过克隆操作来创建对象,提供了一种更加灵活和高效的对象创建方式。
在现实生活中,原型模式的例子可以是制作玩具的模具。模具(原型对象)定义了玩具的形状和细节,而根据模具可以快速复制出多个相同的玩具(克隆对象)。
二、使用场景
- 当创建新对象的成本较高时,可以使用原型模式来复制一个现有对象来创建新对象,避免了重复的初始化操作。
- 当需要创建的对象是动态的,并且无法提前确定其具体类型时,可以使用原型模式。通过克隆操作,可以将复制对象的具体类型由运行时动态决定。
三、代码示例
下面是一个通俗易懂的原型模式示例代码,以动物克隆为场景:
// 抽象原型:动物
abstract class Animal implements Cloneable {
private String name;
public Animal(String name) {
this.name = name;
}
public String getName() {
return name;
}
public abstract Animal clone();
}
// 具体原型:猫
class Cat extends Animal {
public Cat(String name) {
super(name);
}
@Override
public Animal clone() {
return new Cat(getName());
}
}
// 具体原型:狗
class Dog extends Animal {
public Dog(String name) {
super(name);
}
@Override
public Animal clone() {
return new Dog(getName());
}
}
// 客户端代码
public class Main {
public static void main(String[] args) {
Animal cat = new Cat("Tom");
Animal clonedCat = cat.clone();
System.out.println("Original Cat: " + cat.getName());
System.out.println("Cloned Cat: " + clonedCat.getName());
Animal dog = new Dog("Max");
Animal clonedDog = dog.clone();
System.out.println("Original Dog: " + dog.getName());
System.out.println("Cloned Dog: " + clonedDog.getName());
}
}
在上面的示例中,Animal是抽象原型类,定义了动物的名称和克隆方法clone。Cat和Dog是具体原型类,分别实现了抽象原型类的克隆方法,并在构造函数中设置动物的名称。
在客户端代码中,首先创建了一个原始的猫对象cat,然后通过调用clone方法克隆出一个新的猫对象clonedCat。同样地,创建了一个原始的狗对象dog,并克隆出一个新的狗对象clonedDog。最后,打印出原始动物和克隆动物的名称。
通过使用原型模式,可以在不通过构造函数创建对象的情况下,复制现有对象来创建新对象。这种方式可以避免重复的初始化操作,提高对象的创建效率。同时,原型模式也提供了一种动态创建对象的方式,允许根据运行时决定复制对象的具体类型。
文章来源:https://blog.csdn.net/qq_42262444/article/details/135161652
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!