当前位置: 首页 > news >正文

松江 企业网站建设快车app官方下载

松江 企业网站建设,快车app官方下载,医院网站建设 费用,江门网站制作方案文章目录 前言理论基础1. 原型模式定义2. 原型模式角色3. 原型模式工作过程4. 原型模式的优缺点 实战应用1. 原型模式适用场景2. 原型模式实现步骤3. 原型模式与单例模式的区别 原型模式的变体1. 带有原型管理器的原型模式2. 懒汉式单例模式的原型模式实现3. 细粒度原型模式 总… 文章目录 前言理论基础1. 原型模式定义2. 原型模式角色3. 原型模式工作过程4. 原型模式的优缺点 实战应用1. 原型模式适用场景2. 原型模式实现步骤3. 原型模式与单例模式的区别 原型模式的变体1. 带有原型管理器的原型模式2. 懒汉式单例模式的原型模式实现3. 细粒度原型模式 总结 前言 简介设计模式设计模式是在软件开发中常见问题的解决方案它们是经过实践和经验总结出来的可重用的设计思想和解决方案。设计模式通过提供通用的架构、原则和指导帮助开发人员更有效地编写高质量的代码。 设计模式分为三个主要类别 创建型模式关注对象的创建过程包括如何实例化对象隐藏对象的创建细节以及对象的复制和克隆。结构型模式关注对象和类的组合方式以实现更大结构的目标例如类之间的关系。行为型模式关注类和对象间的交互和通信方式以实现更好的协作和控制。 原型模式简介 原型模式是创建型模式的一种它关注对象的复制和克隆。在某些情况下通过传统的实例化方式创建新对象可能会非常昂贵或复杂。这时原型模式提供了一种替代方法通过克隆已有的对象来创建新对象从而避免了昂贵的初始化过程。 原型模式通过使用克隆方法来生成新对象可以节省资源和时间并提高对象创建的效率。它适用于需要创建大量相似对象的场景同时也具有良好的扩展性可以根据需要通过继承和重写克隆方法来实现自定义的克隆逻辑。 总结起来原型模式是一种通过克隆现有对象来创建新对象的设计模式。它提供了一种灵活、高效的对象创建方式可以在某些场景下显著提高代码的复用性和可维护性。 理论基础 1. 原型模式定义 原型模式是一种创建型设计模式它允许通过克隆现有对象来创建新对象而无需依赖于传统的实例化过程。该模式通过复制现有对象的属性和状态创建新的独立对象并且可以根据需要修改其特定属性。 在原型模式中我们定义一个抽象原型类其中包含一个用于克隆对象的抽象方法。具体原型类则继承自抽象原型类并实现了克隆方法以便返回自身的克隆副本。客户端代码使用具体原型类的实例并调用其克隆方法来创建新的对象。 原型模式的关键思想是通过已存在的对象来创建新的对象而不是从头开始进行全新的实例化过程。通过克隆现有对象可以避免重复的初始化工作和资源消耗提高对象创建的效率。同时原型模式也使得对象的创建更加灵活可以根据需要进行修改和定制。 2. 原型模式角色 抽象原型类具体原型类客户端 3. 原型模式工作过程 4. 原型模式的优缺点 实战应用 1. 原型模式适用场景 对象初始化过程耗时较多类初始化需要消耗很多资源通过new的方式创建对象比较复杂需要避免使用类的子类来进行初始化配置 2. 原型模式实现步骤 创建抽象原型类创建具体原型类创建客户端类 3. 原型模式与单例模式的区别 原型模式的变体 1. 带有原型管理器的原型模式 带有原型管理器的原型模式 带有原型管理器的原型模式是对原型模式的扩展它引入了一个原型管理器Prototype Manager来集中管理原型对象。原型管理器充当一个注册表用于存储和获取各种原型对象。 这种变体的原型模式可以更方便地创建和管理多个不同类型的原型对象。客户端可以通过原型管理器获取所需的原型对象而不需要自己显式地调用克隆方法。原型管理器可以在内部维护一个原型对象的集合并根据需要进行复制和返回。 带有原型管理器的原型模式代码实现: import java.util.HashMap; import java.util.Map;// 原型接口 interface Prototype {Prototype clone(); }// 具体原型类 A class ConcretePrototypeA implements Prototype {private String name;public ConcretePrototypeA(String name) {this.name name;}public String getName() {return name;}Overridepublic Prototype clone() {return new ConcretePrototypeA(this.name);} }// 具体原型类 B class ConcretePrototypeB implements Prototype {private int number;public ConcretePrototypeB(int number) {this.number number;}public int getNumber() {return number;}Overridepublic Prototype clone() {return new ConcretePrototypeB(this.number);} }// 原型管理器 class PrototypeManager {private MapString, Prototype prototypes;public PrototypeManager() {prototypes new HashMap();}public void registerPrototype(String key, Prototype prototype) {prototypes.put(key, prototype);}public Prototype getPrototype(String key) {Prototype prototype prototypes.get(key);if (prototype ! null) {return prototype.clone();}return null;} }// 客户端 public class Main {public static void main(String[] args) {PrototypeManager manager new PrototypeManager();manager.registerPrototype(A, new ConcretePrototypeA(Prototype A));manager.registerPrototype(B, new ConcretePrototypeB(10));Prototype prototypeA manager.getPrototype(A);if (prototypeA ! null) {System.out.println(Clone A: ((ConcretePrototypeA) prototypeA).getName());}Prototype prototypeB manager.getPrototype(B);if (prototypeB ! null) {System.out.println(Clone B: ((ConcretePrototypeB) prototypeB).getNumber());}} }2. 懒汉式单例模式的原型模式实现 懒汉式单例模式的原型模式 懒汉式单例模式是一种常见的单例模式实现方式它延迟实例化单例对象直到第一次使用时才创建。将懒汉式单例模式与原型模式结合起来可以实现一种延迟加载并复用实例的模式。 在这种变体的原型模式中单例对象充当原型对象当客户端第一次请求获取实例时会通过克隆来获得对象的副本并将其作为单例对象返回。之后每次请求都将返回这个已存在的副本避免了重复的创建和初始化过程。 这种实现方式结合了懒加载和对象的复用可以在需要的时候动态创建新对象并缓存起来提高了系统的性能和资源利用率。 懒汉式单例模式的原型模式代码实现: // 单例类 class Singleton {private static Singleton instance;// 私有构造函数private Singleton() {System.out.println(Singleton instance created.);}// 获取单例对象public static Singleton getInstance() {if (instance null) {synchronized (Singleton.class) {if (instance null) {instance new Singleton();}}}return instance;}// 克隆方法Overrideprotected Object clone() throws CloneNotSupportedException {throw new CloneNotSupportedException(Cannot clone a singleton object.);} }// 客户端 public class Main {public static void main(String[] args) {Singleton singleton1 Singleton.getInstance();Singleton singleton2 Singleton.getInstance();System.out.println(Singleton 1: singleton1);System.out.println(Singleton 2: singleton2);// 尝试克隆单例对象try {Singleton clone (Singleton) singleton1.clone();System.out.println(Clone: clone);} catch (CloneNotSupportedException e) {System.out.println(e.getMessage());}} }3. 细粒度原型模式 细粒度原型模式 细粒度原型模式是指将一个复杂对象拆分成多个部分并为每个部分创建对应的原型对象。这样在需要使用某个部分时只需要克隆该部分的原型对象即可而不需要克隆整个复杂对象。 细粒度原型模式可以提高系统的灵活性和效率。它允许客户端选择需要的部分进行克隆而不需要克隆整个对象。同时当某个部分发生变化时只需要修改对应的原型对象而不需要重新创建整个对象。 这种模式适用于那些由多个组件或模块组成的复杂对象。通过细粒度的原型对象可以更加灵活地构建和修改复杂对象的组成部分减少了代码的重复和耦合度。 细粒度原型模式代码 // 原型接口 interface Prototype {Prototype clone(); }// 具体原型类 A class ConcretePrototypeA implements Prototype {private String name;public ConcretePrototypeA(String name) {this.name name;}public String getName() {return name;}Overridepublic Prototype clone() {return new ConcretePrototypeA(this.name);} }// 具体原型类 B class ConcretePrototypeB implements Prototype {private int number;public ConcretePrototypeB(int number) {this.number number;}public int getNumber() {return number;}Overridepublic Prototype clone() {return new ConcretePrototypeB(this.number);} }// 客户端 public class Main {public static void main(String[] args) {Prototype prototypeA new ConcretePrototypeA(Prototype A);Prototype cloneA prototypeA.clone();if (cloneA instanceof ConcretePrototypeA) {System.out.println(Clone A: ((ConcretePrototypeA) cloneA).getName());}Prototype prototypeB new ConcretePrototypeB(10);Prototype cloneB prototypeB.clone();if (cloneB instanceof ConcretePrototypeB) {System.out.println(Clone B: ((ConcretePrototypeB) cloneB).getNumber());}} }总结 原型模式使用总结原型模式对于软件开发的重要性 // 抽象原型类 abstract class Prototype implements Cloneable {public abstract Prototype clone(); }// 具体原型类 class ConcretePrototype extends Prototype {Overridepublic Prototype clone() {try {return (Prototype) super.clone();} catch (CloneNotSupportedException e) {e.printStackTrace();return null;}} }// 客户端 public class Client {public static void main(String[] args) {ConcretePrototype prototype new ConcretePrototype();ConcretePrototype clone (ConcretePrototype) prototype.clone();// 进行操作} }以上代码展示了原型模式的简单实现其中抽象原型类定义了一个抽象方法clone在具体原型类中实现了这个方法并通过调用super.clone()方法进行对象的克隆。在客户端中可以创建一个原型对象并进行克隆从而得到一个新的对象进行操作。 原型模式适用于需要创建大量相似对象的场景通过克隆已有对象来提高效率。它简化了对象的创建过程减少了重复的初始化操作。同时原型模式也具有良好的可扩展性可以通过继承和重写clone方法来实现自定义的克隆逻辑。 总的来说原型模式是一种简单而实用的设计模式在软件开发中具有广泛的应用价值。通过合理地运用原型模式可以提高代码的复用性、可维护性和灵活性从而提高软件开发的效率和质量。
http://www.zqtcl.cn/news/410683/

相关文章:

  • 织梦做网站好不好iis中的网站启动不了
  • 临汾住房与城乡建设厅网站迎访问中国建设银行网站_
  • 织梦做的网站首页幻灯片怎么不能显示北大青鸟网站建设课程
  • 做淘客的网站有哪些延安市住建建设网站
  • 南京林业大学实验与建设网站现在都用什么软件搜索附近的人
  • 建站系统wordpress下载亚马逊雨林十大恐怖生物
  • 凡科网做网站怎么样专业团队电影
  • 有什么有趣的网站移动网站排名怎么做
  • 深圳网站建设专家wordpress 4.5下载地址
  • 网站建设公司公司我我提供一个平台wordpress如何去版权信息
  • seo怎么给网站做外链受欢迎的网站建设教程
  • 网站建设使用多语言河南电商网站设计
  • 网站搭建有免费的吗网站地图生成代码
  • 建设公司网站要注意什么投资小利润高的小生意
  • 网站建设需要做哪些工作做胃镜需那好天津津门网站A
  • 做网站申请域名的流程辽宁省工程造价网
  • 网站系统维护一般多长时间金华高端网站设计
  • 做网站公司销售开场白企业网站规划与开发
  • 兰州新区建站不锈钢网站建设
  • 淘宝小网站怎么做的电商网站有哪些
  • 哪些网站可以做画赚钱wordpress go跳转页
  • 怎么做新网站上线通稿深圳罗湖区网站建设公司
  • php 企业网站做网站可以赚钱吗
  • 局域网视频网站建设点播系统长沙3合1网站建设价格
  • 静态网站 服务器合肥做个网站什么价格
  • 宁阳网站设计家电网站设计方案
  • 网站备案icp秦皇岛黄金海岸
  • dedecms 金融类网站模板wordpress dux5.3
  • 学校网站源码wordpress向网站上传文件怎么做
  • 电子商务网站建设说课稿济南网站建设方案报价