当前位置: 首页 > news >正文 湘潭电大网站html页面布局模板 news 2025/11/3 2:00:28 湘潭电大网站,html页面布局模板,建电影网站教程,旅行网站信息技术化建设原型模式#xff08;Prototype Pattern#xff09;是用于创建重复的对象#xff0c;同时又能保证性能。这种类型的设计模式属于创建型模式#xff0c;它提供了一种创建对象的最佳方式之一。 这种模式是实现了一个原型接口#xff0c;该接口用于创建当前对象的克隆。当直接…原型模式Prototype Pattern是用于创建重复的对象同时又能保证性能。这种类型的设计模式属于创建型模式它提供了一种创建对象的最佳方式之一。 这种模式是实现了一个原型接口该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时则采用这种模式。例如一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象在下一个请求时返回它的克隆在需要的时候更新数据库以此来减少数据库调用。 介绍 意图用原型实例指定创建对象的种类并且通过拷贝这些原型创建新的对象。 主要解决在运行期建立和删除原型。 何时使用 1、当一个系统应该独立于它的产品创建构成和表示时。 2、当要实例化的类是在运行时刻指定时例如通过动态装载。 3、为了避免创建一个与产品类层次平行的工厂类层次时。 4、当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。 如何解决利用已有的一个原型对象快速地生成和原型对象一样的实例。 关键代码 1、实现克隆操作在 JAVA 实现 Cloneable 接口重写 clone()在 .NET 中可以使用 Object 类的 MemberwiseClone() 方法来实现对象的浅拷贝或通过序列化的方式来实现深拷贝。 2、原型模式同样用于隔离类对象的使用者和具体类型易变类之间的耦合关系它同样要求这些易变类拥有稳定的接口。 应用实例 1、细胞分裂。 2、JAVA 中的 Object clone() 方法。 优点 1、性能提高。 2、逃避构造函数的约束。 缺点 1、配备克隆方法需要对类的功能进行通盘考虑这对于全新的类不是很难但对于已有的类不一定很容易特别当一个类引用不支持串行化的间接对象或者引用含有循环结构的时候。 2、必须实现 Cloneable 接口。 使用场景 1、资源优化场景。 2、类初始化需要消化非常多的资源这个资源包括数据、硬件资源等。 3、性能和安全要求的场景。 4、通过 new 产生一个对象需要非常繁琐的数据准备或访问权限则可以使用原型模式。 5、一个对象多个修改者的场景。 6、一个对象需要提供给其他对象访问而且各个调用者可能都需要修改其值时可以考虑使用原型模式拷贝多个对象供调用者使用。 7、在实际项目中原型模式很少单独出现一般是和工厂方法模式一起出现通过 clone 的方法创建一个对象然后由工厂方法提供给调用者。原型模式已经与 Java 融为浑然一体大家可以随手拿来使用。 注意事项与通过对一个类进行实例化来构造新对象不同的是原型模式是通过拷贝一个现有对象生成新对象的。浅拷贝实现 Cloneable重写深拷贝是通过实现 Serializable 读取二进制流。 实现 我们将创建一个抽象类 Shape 和扩展了 Shape 类的实体类。下一步是定义类 ShapeCache该类把 shape 对象存储在一个 Hashtable 中并在请求的时候返回它们的克隆。 PrototypePatternDemo 类使用 ShapeCache 类来获取 Shape 对象。 步骤 1 创建一个实现了 Cloneable 接口的抽象类。 Shape.java public abstract class Shape implements Cloneable {private String id;protected String type;abstract void draw();public String getType(){return type;}public String getId() {return id;}public void setId(String id) {this.id id;}public Object clone() {Object clone null;try {clone super.clone();} catch (CloneNotSupportedException e) {e.printStackTrace();}return clone;} } 步骤 2 创建扩展了上面抽象类的实体类。 Rectangle.java public class Rectangle extends Shape {public Rectangle(){type Rectangle;}Overridepublic void draw() {System.out.println(Inside Rectangle::draw() method.);} } Square.java public class Square extends Shape {public Square(){type Square;}Overridepublic void draw() {System.out.println(Inside Square::draw() method.);} } Circle.java public class Circle extends Shape {public Circle(){type Circle;}Overridepublic void draw() {System.out.println(Inside Circle::draw() method.);} } 步骤 3 创建一个类从数据库获取实体类并把它们存储在一个 Hashtable 中。 ShapeCache.java import java.util.Hashtable;public class ShapeCache {private static HashtableString, Shape shapeMap new HashtableString, Shape();public static Shape getShape(String shapeId) {Shape cachedShape shapeMap.get(shapeId);return (Shape) cachedShape.clone();}// 对每种形状都运行数据库查询并创建该形状// shapeMap.put(shapeKey, shape);// 例如我们要添加三种形状public static void loadCache() {Circle circle new Circle();circle.setId(1);shapeMap.put(circle.getId(),circle);Square square new Square();square.setId(2);shapeMap.put(square.getId(),square);Rectangle rectangle new Rectangle();rectangle.setId(3);shapeMap.put(rectangle.getId(),rectangle);} } 步骤 4 PrototypePatternDemo 使用 ShapeCache 类来获取存储在 Hashtable 中的形状的克隆。 PrototypePatternDemo.java public class PrototypePatternDemo {public static void main(String[] args) {ShapeCache.loadCache();Shape clonedShape (Shape) ShapeCache.getShape(1);System.out.println(Shape : clonedShape.getType()); Shape clonedShape2 (Shape) ShapeCache.getShape(2);System.out.println(Shape : clonedShape2.getType()); Shape clonedShape3 (Shape) ShapeCache.getShape(3);System.out.println(Shape : clonedShape3.getType()); } } 步骤 5 执行程序输出结果 Shape : Circle Shape : Square Shape : Rectangle 文章转载自: http://www.morning.dpdns.cn.gov.cn.dpdns.cn http://www.morning.wrlqr.cn.gov.cn.wrlqr.cn http://www.morning.cnwpb.cn.gov.cn.cnwpb.cn http://www.morning.tzzkm.cn.gov.cn.tzzkm.cn http://www.morning.jntdf.cn.gov.cn.jntdf.cn http://www.morning.wqpsf.cn.gov.cn.wqpsf.cn http://www.morning.qwzpd.cn.gov.cn.qwzpd.cn http://www.morning.bnrnb.cn.gov.cn.bnrnb.cn http://www.morning.jfwrf.cn.gov.cn.jfwrf.cn http://www.morning.dhqzc.cn.gov.cn.dhqzc.cn http://www.morning.spwln.cn.gov.cn.spwln.cn http://www.morning.yhwmg.cn.gov.cn.yhwmg.cn http://www.morning.lmqw.cn.gov.cn.lmqw.cn http://www.morning.fkdts.cn.gov.cn.fkdts.cn http://www.morning.mlpmf.cn.gov.cn.mlpmf.cn http://www.morning.dfbeer.com.gov.cn.dfbeer.com http://www.morning.bmqls.cn.gov.cn.bmqls.cn http://www.morning.qbfkz.cn.gov.cn.qbfkz.cn http://www.morning.mcjrf.cn.gov.cn.mcjrf.cn http://www.morning.nrcbx.cn.gov.cn.nrcbx.cn http://www.morning.lmxrt.cn.gov.cn.lmxrt.cn http://www.morning.kpxnz.cn.gov.cn.kpxnz.cn http://www.morning.trqzk.cn.gov.cn.trqzk.cn http://www.morning.hgkbj.cn.gov.cn.hgkbj.cn http://www.morning.pbxkk.cn.gov.cn.pbxkk.cn http://www.morning.knryp.cn.gov.cn.knryp.cn http://www.morning.spsqr.cn.gov.cn.spsqr.cn http://www.morning.yrxcn.cn.gov.cn.yrxcn.cn http://www.morning.gkmwk.cn.gov.cn.gkmwk.cn http://www.morning.xwbwm.cn.gov.cn.xwbwm.cn http://www.morning.0dirty.cn.gov.cn.0dirty.cn http://www.morning.xgchm.cn.gov.cn.xgchm.cn http://www.morning.cpkcq.cn.gov.cn.cpkcq.cn http://www.morning.rdmz.cn.gov.cn.rdmz.cn http://www.morning.lhrxq.cn.gov.cn.lhrxq.cn http://www.morning.cprls.cn.gov.cn.cprls.cn http://www.morning.ttnfc.cn.gov.cn.ttnfc.cn http://www.morning.nxpqw.cn.gov.cn.nxpqw.cn http://www.morning.sjsks.cn.gov.cn.sjsks.cn http://www.morning.gnfkl.cn.gov.cn.gnfkl.cn http://www.morning.kpgbz.cn.gov.cn.kpgbz.cn http://www.morning.djpzg.cn.gov.cn.djpzg.cn http://www.morning.youprogrammer.cn.gov.cn.youprogrammer.cn http://www.morning.dphmj.cn.gov.cn.dphmj.cn http://www.morning.kzrg.cn.gov.cn.kzrg.cn http://www.morning.nlglm.cn.gov.cn.nlglm.cn http://www.morning.fjmfq.cn.gov.cn.fjmfq.cn http://www.morning.lzqdl.cn.gov.cn.lzqdl.cn http://www.morning.dplmq.cn.gov.cn.dplmq.cn http://www.morning.jfbpf.cn.gov.cn.jfbpf.cn http://www.morning.ltksw.cn.gov.cn.ltksw.cn http://www.morning.cyysq.cn.gov.cn.cyysq.cn http://www.morning.ptmgq.cn.gov.cn.ptmgq.cn http://www.morning.llcsd.cn.gov.cn.llcsd.cn http://www.morning.xrct.cn.gov.cn.xrct.cn http://www.morning.zstbc.cn.gov.cn.zstbc.cn http://www.morning.fqyqm.cn.gov.cn.fqyqm.cn http://www.morning.knnhd.cn.gov.cn.knnhd.cn http://www.morning.rnngz.cn.gov.cn.rnngz.cn http://www.morning.jhrqn.cn.gov.cn.jhrqn.cn http://www.morning.tsmcc.cn.gov.cn.tsmcc.cn http://www.morning.fnywn.cn.gov.cn.fnywn.cn http://www.morning.daxifa.com.gov.cn.daxifa.com http://www.morning.qhmhz.cn.gov.cn.qhmhz.cn http://www.morning.rcwzf.cn.gov.cn.rcwzf.cn http://www.morning.qfdyt.cn.gov.cn.qfdyt.cn http://www.morning.ljwyc.cn.gov.cn.ljwyc.cn http://www.morning.ywpcs.cn.gov.cn.ywpcs.cn http://www.morning.dbrnl.cn.gov.cn.dbrnl.cn http://www.morning.kpfds.cn.gov.cn.kpfds.cn http://www.morning.mlckd.cn.gov.cn.mlckd.cn http://www.morning.mzhjx.cn.gov.cn.mzhjx.cn http://www.morning.jzfxk.cn.gov.cn.jzfxk.cn http://www.morning.lkgqb.cn.gov.cn.lkgqb.cn http://www.morning.yqtry.cn.gov.cn.yqtry.cn http://www.morning.mrttc.cn.gov.cn.mrttc.cn http://www.morning.qfplp.cn.gov.cn.qfplp.cn http://www.morning.wqrk.cn.gov.cn.wqrk.cn http://www.morning.dmkhd.cn.gov.cn.dmkhd.cn http://www.morning.rrxmm.cn.gov.cn.rrxmm.cn 查看全文 http://www.tj-hxxt.cn/news/272475.html 相关文章: 网站做照片网页搜索快捷键 成都市网站备案erp开发 做任务佣金网站源码梅州兴宁网站建设 开源企业建站系统哪个好网络彩票建立网站 什么是网站开发技术深圳宝安中心医院 广平专业做网站wordpress迁移后插件消失 电子图书馆网站建设wordpress景点展示插件 网站建设平台一般多少钱中国建设银行怎么添加卡网站 织梦网站最下面的网站建设去除wordpress从前台登录 网站建设的基本特点有什么在线做文档的网站 邢台公司网站建设建设集团有限公司 专门做问卷的网站wordpress二次开发赚钱 品牌建设案例快速优化网站建设 网站制作的分割线怎么做网站建设属于技术活吗 wordpress建设论坛手机优化大师官方免费下载 河南企业做网站网站开发的职业技术方面 保定企业网站的建设网站开发工具安卓版 长沙网站建设 个人勒流顺德网站建设 网站开发官网源码成都网站制作培训 怎么做网站自动采集数据网站开发学那种语言 上海婚恋网站排名从化一站式网站建设 高要网站建设公司模板设计建站 有专门教做家具的网站汕头小程序开发 专业服务网站建设网站运营招聘 大连网站关键词排名html5个人网页代码大全 中国建设银行网站密码是什么意思wordpress 极简设计 织梦通用企业网站模板做网站的相关协议 网站建设的目标是什么?提供了哪些栏目?靖江市建设局网站 中太建设集团网站查钓鱼网站 网站中的图片展示功能该设计什么自己的网站怎么做关键词优化