设计模式-原型模式 - 公司荣誉 - 新余市思创暖通工贸有限公司
现在的位置: 主页 > 公司荣誉 > 文章正文
设计模式-原型模式
作者:新余市思创暖通工贸有限公司 来源:www.jxsichuang.com 发布时间:2017-09-12 16:23:53
设计模式-原型模式 最近在很多场合都看见设计模式的影子,一直以来,都投入主要时间在搞算法与数据结构,很来发现设计模式真的很重要。有的时候代码的可维护、可重用、可扩展确实胜过单纯的算法效率高。所以拾起大牛书籍《大话设计模式》同时参考网上诸大牛的博客,开始我的设计模式之旅。

今天先介绍一下原型模式。

概念:

原型模式(Prototype):用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。

优点:

(1)、从一个对象创建另一个对象而不用关心具体创建的细节。

(2)、直接调用构造函数可能会降低效率,通过克隆可以省去一些构造过程中有关初始化的细节。

浅拷贝:对于对象,只复制对象的引用或指针,不在内存中开辟存储单元存储复制后的对象,二者共有一段实际内存;

深拷贝:对于对象,复制实际对象,在内存中开辟存储单元存储复制后的对象,二者各有各的实际内存,只是对象的状态相同。

尤其是在涉及动态申请内存的时候要严格区分二者。以下是图解:

\

\

图片转自 ,在此表示感谢!vcD4KPHA+PHN0cm9uZz7KvsD9tPrC66O6PC9zdHJvbmc+PC9wPgo8cHJlIGNsYXNzPQ=="brush:java;">package Pattern; class Dog implements Cloneable { String name; public Dog(String tempName) { name = tempName; } public void ShowName() { System.out.println(name); } public Dog clone() { Dog myDog = null; try { myDog = (Dog) super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return myDog; } } public class Pattern { public static void main(String[] args) { Dog myDog = new Dog("热狗"); myDog.ShowName(); Dog newDog = (Dog) myDog.clone(); newDog.ShowName(); } }

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:襄阳SEO http://xiangyang.raoyu.net


  • 上一篇:完善三个小细节 助力打造软件站最佳用户体验
  • 下一篇:最后一页
  • 
    COPYRIGHT © 2015 新余市思创暖通工贸有限公司 ALL RIGHTS RESERVED.
    本站所有原创信息,未经许可请勿任意转载或复制使用 网站地图 技术支持:肥猫科技
    精彩专题:网站建设
    购买本站友情链接、项目合作请联系客服QQ:2500-38-100