网站建设用什么框架好,贵州公司网站建设,微信怎么设计分享网站,wordpress 文章标题调用23种设计模式【创建型模式】详细介绍之【原型模式】 设计模式的分类和应用场景总结原型模式设计模式系列#xff1a;深入理解原型模式#xff08;Prototype Pattern#xff09;什么是原型模式#xff1f;为什么使用原型模式#xff1f;原型模式的实现方式原型模式的代码示… 23种设计模式【创建型模式】详细介绍之【原型模式】 设计模式的分类和应用场景总结原型模式设计模式系列深入理解原型模式Prototype Pattern什么是原型模式为什么使用原型模式原型模式的实现方式原型模式的代码示例1. 定义图形接口2. 实现具体图形类3. 使用原型模式创建图形 总结 设计模式的分类和应用场景总结 可以查看专栏设计模式设计模式 原型模式
设计模式系列深入理解原型模式Prototype Pattern
在设计模式的创建型模式中原型模式Prototype Pattern是一种通过复制现有对象来创建新对象的设计模式。它提供了一种创建对象的方式而无需从头开始编写复杂的实例化逻辑。本文将深入探讨原型模式的概念、使用场景、实现方式以及代码示例。
什么是原型模式
原型模式属于创建型设计模式其核心思想是通过复制一个已经存在的对象来创建新的对象而不是从零开始构建。这种复制的过程称为克隆被复制的对象称为原型。在原型模式中新对象的类型和值都与原型相同。
为什么使用原型模式 减少对象创建的时间 当对象的创建过程比较复杂、耗时时通过复制已有对象可以提高创建效率。 简化对象的创建过程 原型模式隐藏了对象创建的细节使得新对象的创建过程更加简单。 保护现有对象的状态 在某些情况下我们希望保护现有对象的状态避免因为新对象的创建而导致原有对象状态的改变。
原型模式的实现方式
在 Java 中实现原型模式主要有两种方式 实现 Cloneable 接口 被克隆的类需要实现 Cloneable 接口并重写 clone() 方法。 通过序列化与反序列化实现克隆 将对象先序列化到流中然后再反序列化出来即可得到对象的克隆。
原型模式的代码示例
考虑一个简单的图形绘制应用程序其中有一个图形类 Shape我们希望通过原型模式创建不同类型的图形。
1. 定义图形接口
public interface Shape extends Cloneable {void draw();Shape clone();
}2. 实现具体图形类
public class Circle implements Shape {Overridepublic void draw() {System.out.println(Drawing a Circle);}Overridepublic Shape clone() {try {return (Shape) super.clone();} catch (CloneNotSupportedException e) {e.printStackTrace();return null;}}
}public class Rectangle implements Shape {Overridepublic void draw() {System.out.println(Drawing a Rectangle);}Overridepublic Shape clone() {try {return (Shape) super.clone();} catch (CloneNotSupportedException e) {e.printStackTrace();return null;}}
}3. 使用原型模式创建图形
public class PrototypeDemo {public static void main(String[] args) {// 原型对象Circle circle new Circle();// 创建克隆对象Circle clonedCircle (Circle) circle.clone();clonedCircle.draw();// 原型对象Rectangle rectangle new Rectangle();// 创建克隆对象Rectangle clonedRectangle (Rectangle) rectangle.clone();clonedRectangle.draw();}
}在上述示例中通过实现 Cloneable 接口和重写 clone() 方法使得 Circle 和 Rectangle 类能够被克隆。在 PrototypeDemo 中通过克隆操作创建了新的图形对象并调用了它们的 draw() 方法。
总结
原型模式是一种简单而强大的创建型设计模式适用于对象的创建过程复杂、需要创建多个相似对象的场景。通过使用原型模式我们能够在不影响现有代码结构的前提下灵活地创建新对象提高系统的性能和可维护性。
希望通过本文的介绍你对原型模式有了更深入的理解。在实际应用中根据场景的不同选择适合的创建型设计模式是至关重要的。 版权声明 原创博主牛哄哄的柯南 博主原文链接https://keafmd.blog.csdn.net/ 个人博客链接https://www.keafmd.top/ 看完如果对你有帮助感谢点击下面的点赞支持 [哈哈][抱拳] 加油
共同努力
Keafmd
感谢支持牛哄哄的柯南期待你的三连关注~~
keep accumulate for my dream【共勉】 ↓ ↓ ↓ ↓ ↓ ↓