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

网站建设怎么样工作室百度资源搜索平台

网站建设怎么样工作室,百度资源搜索平台,在门户网站中,wordpress 图片切换插件前言: 为什么之前写过Golang 版的设计模式,还在重新写Java 版? 答:因为对于我而言,当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言,更适合用于学习设计模式。 为什么类图要附上uml 因为很…

前言:
为什么之前写过Golang 版的设计模式,还在重新写Java 版?
答:因为对于我而言,当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言,更适合用于学习设计模式。
为什么类图要附上uml
因为很多人学习有做笔记的习惯,如果单纯的只是放一张图片,那么学习者也只能复制一张图片,可复用性较低,附上uml,方便有新理解时,快速出新图。


🔥[设计模式Java实现附plantuml源码]专链

  1. 确保对象的唯一性~单例模式
  2. 集中式工厂的实现~简单工厂模式
  3. 多态工厂的实现——工厂方法模式
  4. 产品族的创建——抽象工厂模式
  5. 对象的克隆~原型模式

文章目录

    • 原型模式
      • 代码简单实现
      • 原型模式总结
        • 原型模式的主要优点如下:
        • 原型模式的主要缺点如下:
      • 适用场景

原型模式

在这里插入图片描述

@startumlabstract class Prototype implements Cloneable {- String name;+ clone(): Prototype;}class ConcretePrototypeA extends Prototype {+ clone(): Prototype;
}class ConcretePrototypeB extends Prototype {+ clone(): Prototype;
}class Client{}Client -up-> ConcretePrototypeA@enduml

在原型模式结构图中包含以下3个角色。
(1)Prototype(抽象原型类):它是声明克隆方法的接口,是所有具体原型类的公共父类,可以是抽象类也可以是接口,甚至还可以是具体实现类。
(2)ConcretePrototype(具体原型类):它实现在抽象原型类中声明的克隆方法,在克隆方法中返回自己的一个克隆对象。
(3)Client(客户类):让一个原型对象克隆自身从而创建一个新的对象,在客户类中只需要直接实例化或通过工厂方法等方式创建一个原型对象,再通过调用该对象的克隆方法即可得到多个相同的对象。由于客户类针对抽象原型类Prototype编程,因此用户可以根据需要选择具体原型类,系统具有较好的可扩展性,增加或更换具体原型类都很方便。

代码简单实现

package create;public class PrototypeTest {public static void main(String[] args)  {Prototype prototype = new Prototype();prototype.setName("hello");System.out.println(prototype);Prototype clone = prototype.clone();System.out.println(clone);System.out.println(prototype.getName());System.out.println(clone.getName());}}// 原型类
class Prototype implements Cloneable {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}@Overrideprotected Prototype clone(){try {return ((Prototype) super.clone());} catch (CloneNotSupportedException ignored) {System.out.println("当前对象不支持拷贝");}return null;}
}

原型模式总结

注意深浅拷贝

原型模式的主要优点如下:

(1)当创建新的对象实例较为复杂时,使用原型模式可以简化对象的创建过程,通过复制一个已有实例可以提高新实例的创建效率。
(2)扩展性较好。由于在原型模式中提供了抽象原型类,在客户端可以针对抽象原型类进行编程,而将具体原型类写在配置文件中,增加或减少具体原型类对原有系统都没有任何影响。
(3)原型模式提供了简化的创建结构。工厂方法模式常常需要有一个与产品类等级结构相同的工厂等级结构,而原型模式就不需要这样。原型模式中产品的复制是通过封装在原型类中的克隆方法实现的,无须专门的工厂类来创建产品。
(4)可以使用深克隆的方式保存对象的状态。使用原型模式将对象复制一份并将其状态保存起来,以便在需要的时候使用,例如恢复到某一历史状态,可辅助实现撤销操作。

原型模式的主要缺点如下:

(1)需要为每一个类配备一个克隆方法,而且该克隆方法位于一个类的内部。当对已有的类进行改造时,需要修改源代码,违背了开闭原则。
(2)在实现深克隆时需要编写较为复杂的代码,而且当对象之间存在多重的嵌套引用时,为了实现深克隆,每一层对象对应的类都必须支持深克隆,实现起来可能会比较麻烦。

适用场景

在以下情况下可以考虑使用原型模式:
(1)创建新对象成本较大(例如初始化需要占用较长的时间,占用太多的CPU资源或网络资源)。新的对象可以通过原型模式对已有对象进行复制来获得,如果是相似对象,则可以对其成员变量稍作修改。
(2)如果系统要保存对象的状态,而对象的状态变化很小,或者对象本身占用内存较少时,可以使用原型模式配合备忘录模式来实现。
(3)需要避免使用分层次的工厂类来创建分层次的对象,并且类的实例对象只有一个或很少的几个组合状态。通过复制原型对象得到新实例可能比使用构造函数创建一个新实例更加方便。

http://www.dtcms.com/wzjs/26803.html

相关文章:

  • 福州 网站开发今日西安头条最新消息
  • 中国黄页是什么seo的基本步骤包括哪些
  • 做网站要坚持怎么让百度快速收录网站
  • 中国建设银行官网站周波百度一下 你就知道首页官网
  • 海棠网站互联网营销师证书含金量
  • 怎样做销售产品网站学生网页设计模板
  • 济南做网站的机构有哪些宁波优化网站排名软件
  • 品牌网站建设美丽百度搜索量怎么查
  • 做分享网站百度推广怎么看关键词排名
  • 买个网页多少钱北京seo招聘网
  • 北京手机网站建设外包中国万网
  • 昆明做网站哪家公司好公司网站如何推广
  • 做电子手抄报的网站怎么在百度上做广告推广
  • 网站开发中定义路由的作用网址导航浏览器下载
  • 辽宁响应式网站建设哪家好营销推广策划及渠道
  • 什么网站可以做公共基础知识百度推广员工工资怎么样
  • 专门做网站的软件是seo网络优化师招聘
  • 嘉兴网站的优化百度seo插件
  • 内网穿透做网站能查到网站ip吗武汉seo招聘网
  • 推广做黄页网站比较好的友链平台
  • 东莞建外贸网站好网址收录
  • 网站建设前的规划网络营销策划公司
  • 江苏盐城建筑公司网站广点通推广登录入口
  • 90后做网站赚了爱战网关键词工具
  • 张家口做网站的公司比较靠谱的推广平台
  • 做注册任务的网站有哪些电商平台排行榜前十名
  • 建站员工网站优化推广网站seo
  • 个人网站制作wordpress个人网站怎么制作
  • 园区网站建设公司推广渠道
  • 北京免费模板建站杭州seo技术培训