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

专门做童装的网站北京一诺互联科技有限公司

专门做童装的网站,北京一诺互联科技有限公司,wordpress没有中文版,龙之向导外贸原型模式是一种创建型设计模式#xff0c;使调用方能够复制已有对象#xff0c;而又无需使代码依赖它们所属的类。当有一个类的实例#xff08;原型#xff09;#xff0c;并且想通过复制原型来创建新对象时#xff0c;通常会使用原型模式。 The Prototype pattern is g…原型模式是一种创建型设计模式使调用方能够复制已有对象而又无需使代码依赖它们所属的类。当有一个类的实例原型并且想通过复制原型来创建新对象时通常会使用原型模式。 The Prototype pattern is generally used when we have an instance of the class (prototype) and wed like to create new objects by just copying the prototype.结构设计 原型模式包含如下角色 Prototype原型类用来声明克隆方法。在绝大多数情况下只会有一个名为 clone 的方法。 ConcretePrototype具体原型类用来实现克隆方法。除了将原始对象的数据复制到克隆体中之外该方法有时还需处理克隆过程中的极端情况 例如克隆关联对象和梳理递归依赖等等。 原型模式类图表示如下 伪代码实现 接下来将使用代码介绍下原型模式的实现。 // 1.定义原型接口用来声明克隆方法 public interface Prototype {/*** 复制对象** return 复制后的对象*/Prototype clone(); } // 2、定义具体原型类(ConcretePrototype)用来实现克隆方法 public class ConcretePrototype implements Prototype {private String field;public ConcretePrototype() {}public String getField() {return field;}public ConcretePrototype(String field) {this.field field;}Overridepublic Prototype clone() {ConcretePrototype concretePrototype new ConcretePrototype();concretePrototype.field this.field;return concretePrototype;} } // 3、客户端调用 public class PrototypeClient {public PrototypeClient() {}// 调用方式调用具体原型实例的克隆方法public void test() {Prototype concretePrototype new ConcretePrototype(foo);ConcretePrototype clonedPrototype (ConcretePrototype) concretePrototype.clone();System.out.println(clonedPrototype.getField());} }需要说明的是对于Java语言来说Object基类已经提供了一个clone的保护方法用于实现对象的浅复制。注意只有实现了Cloneable接口才可以调用该方法 否则抛出CloneNotSupportedException异常。更多clone方法的介绍可以参考笔者之前的文章。 适用场景 在以下情况下可以考虑使用原型模式 (1) 如果需要复制一些对象同时又希望代码独立于这些对象所属的具体类可以使用原型模式。 例如代码里需要处理第三方接口传递过来的对象时即使不考虑代码耦合的情况 调用方的代码也不能依赖这些对象所属的具体类因为无法知道它们的具体信息。 原型模式可以为调用方提供一个通用接口调用方可通过这一接口与所有实现了克隆的对象进行交互它也使得调用方与其所克隆的对象具体类独立开来。 (2) 如果子类的区别仅在于其对象的初始化方式那么可以使用原型模式来减少子类的数量。 在原型模式中 可以使用一系列预生成的、各种类型的对象作为原型(原型对象池)。客户端不必根据需求对子类进行实例化只需找到合适的原型并对其进行克隆即可。 优缺点 原型模式有以下优点 (1) 将对象克隆与对象所属的具体类分离(解耦)避免克隆对象与具体类的紧耦合。 (2) 简化了复杂对象的初始化代码。对一些复杂对象可以通过提供克隆方法来简化调用方的使用。 (3) 提供了除继承以外的方式来实现复杂对象的初始化。继承建立了子类与父类的强耦合如果可以尽量不要使用继承。 但是原型模式也存在以下缺点 (1) 在重写克隆方法时对于复杂对象的关联对象或递归依赖等处理相比麻烦一些。 参考 《设计模式可复用面向对象软件的基础》 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides 著 李英军, 马晓星 等译 https://www.cnblogs.com/adamjwh/p/9033550.html 简说设计模式——原型模式 https://refactoringguru.cn/design-patterns/prototype 原型模式 https://www.baeldung.com/java-pattern-prototype Prototype Pattern in Java
http://www.w-s-a.com/news/426222/

相关文章:

  • 广州天河区网站建设公司东莞网络游戏制作开发
  • 哪个网站做免费小程序rio门户网站的制作
  • 短网站生成查询网站所有关键词排名
  • 阿里云购买网站登录技术服务外包公司
  • 淘宝单页面网站手机制作游戏的软件
  • 汉中市网站建设wordpress编辑器好麻烦
  • 织梦做的网站快照被攻击在线看crm系统
  • 青岛物流公司网站建设网站建设提议
  • 企业网站建设高端品牌宿州注册公司多少钱
  • 个人微信公众号怎么做微网站吗湛江网站制作方案
  • 学校网站改版南京展厅设计装修
  • 手机网站有免费做的吗建设银行网站不能登录
  • 树莓派做影视网站网站建设企业 熊账号
  • 网站iis7.5配置免费网站建设模板下载
  • 生物公司网站建设方案wordpress自定义字段调用
  • 静态网站公用头部如何调用标题wordpress自动采集翻译插件怎么用
  • 网站做单链 好不好网站营销不同阶段的网站分析目标
  • 网线制作颜色顺序兰州网站推广优化
  • 北京沙河教做网站的企业融资以什么为基础
  • 给网站添加百度地图绵阳做绵阳做网站网站
  • 用电脑做服务器制作网站东莞营销网站建设
  • 网站需要怎么做wordpress 重装
  • 做电影网站赚钱的方法世界500强企业排名2023
  • 领卷网站怎么做的西宁设计网站建设
  • 东莞网站建设价位软件开发税率是13%还是6
  • 企业网站建设一条龙如何在网上推广自己
  • 成品网站制作公司企梦网站建设
  • 网站开发微信授权登录ftp 如何 更新 wordpress
  • icp备案和网站不符查询公司的网站备案
  • 万江营销型网站建设泰安网站建设制作电话号码