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

网站ul优化条形码生成器在线制作图片

网站ul优化,条形码生成器在线制作图片,湖北省建筑信息平台,建站中心原型设计模式 一 .简介二. 案例三. 补充知识 前言 这是我在这个网站整理的笔记,有错误的地方请指出#xff0c;关注我#xff0c;接下来还会持续更新。 作者#xff1a;神的孩子都在歌唱 一 .简介 原型模式提供了一种机制#xff0c;可以将原始对象复制到新对象#xff0… 原型设计模式 一 .简介二. 案例三. 补充知识 前言 这是我在这个网站整理的笔记,有错误的地方请指出关注我接下来还会持续更新。 作者神的孩子都在歌唱 一 .简介 原型模式提供了一种机制可以将原始对象复制到新对象然后根据我们的需要进行修改。原型设计模式使用java克隆来复制对象。 原型模式的克隆分为浅克隆和深克隆。 深拷贝Deep Copy和浅拷贝Shallow Copy是指在进行对象复制时所产生的两种不同结果。 深拷贝创建一个新对象新对象的属性和原来对象完全相同对于非基本类型属性仍指向原有属性所指向的对象的内存地址。 浅拷贝创建一个新对象属性中引用的其他对象也会被克隆不再指向原有对象地址。 Java中的Object类中提供了 clone() 方法来实现浅克隆。 Cloneable 接口是上面的类图中的抽象原型类而实现了Cloneable接口的子实现类就是具体的原型类。 二. 案例 通过一个例子就很容易理解原型设计模式。假设我们有一个从数据库加载数据的对象。现在我们需要在程序中多次修改这些数据因此使用通过new 一个新的对象并再次从数据库加载所有数据并不是一个好主意。更好的方法是将现有对象克隆到新对象中然后进行数据操作。原型设计模式其实就是需要你确保正在拷贝的对象应该提供拷贝功能。它不应该由任何其他类完成。然而是否使用对象属性的浅拷贝或 深拷贝 取决于 需求及其设计决策。 以下是代码案例 这里我定义了一个篮球类,通过重新实现clone方法来实现深拷贝 /*** author chenyunzhi*/ public class Ball implements Cloneable{private final ListString ballList;public Ball(){ballList new ArrayList();}public Ball(ListString ballList){this.ballListballList;}/*** 模拟从数据库中拿数据*/public void loadData(){ballList.add(basketball);ballList.add(soccer);}public ListString getBallList() {return ballList;}Overridepublic Ball clone() throws CloneNotSupportedException {return new Ball(new ArrayList(this.getBallList()));}}然后我写了一个测试类方便测试这里我new了一个 ball 对象然后对ball对象进行拷贝对拷贝的对象进行了增添和删除他们相互之间都不影响 /*** author chenyunzhi*/ public class PrototypePatternTest {public static void main(String[] args) throws CloneNotSupportedException {Ball ball new Ball();ball.loadData();Ball ballNew ball.clone();Ball ballNew1 ball.clone();ListString list ballNew.getBallList();list.add(tennis);ListString list1 ballNew1.getBallList();list1.remove(basketball);// 输入修改后的球类列表System.out.println(ball List: ball.getBallList());System.out.println(ballNew List: list);System.out.println(ballNew1 List: list1);System.out.println(ball List: ball.getBallList());}}测试结果 结论如果没有提供对象克隆我们每次都必须调用数据库来获取球类列表。然后进行那些耗费资源和时间的操作。这就是java中原型设计模式的全部内容。 三. 补充知识 问题 为什么浅拷贝中 拷贝的对象修改了某个String类型的值被拷贝对象的值没有变化 在Java类库中所有基本类型的包装类都是不可变类例如Integer、Float等。 不可变类(Immutable Class) 在初始化后的所有信息不能被修改。而更改String成员的值相当于在堆中新建一个String引用旧的String常量引用仍然存在于堆中只不过还没回收从而让两个引用不相等。这时你以为String是被克隆但造成其不相等的原因其实是赋值。 作者神的孩子都在歌唱 本人博客https://blog.csdn.net/weixin_46654114 转载说明务必注明来源附带本人博客连接。
http://www.w-s-a.com/news/213143/

相关文章:

  • 网站建设微信开发工厂代加工平台
  • 厦门 网站建设 公司哪家好asp.net 创建网站
  • 专业北京网站建设凡科网做网站怎么样
  • 金富通青岛建设工程有限公司网站浙江省住建厅四库一平台
  • 有搜索引擎作弊的网站企业建设H5响应式网站的5大好处6
  • 是做网站编辑还是做平面设计seo外包公司接单
  • 做性的网站有哪些苏州专业网站设计制作公司
  • 陵水网站建设友创科技十大优品店排名
  • 想换掉做网站的公司简要说明网站制作的基本步骤
  • 国企公司网站制作wordpress 浮动定位
  • 网站网页直播怎么做的企业网站建设推荐兴田德润
  • 网站建设熊猫建站厦门seo全网营销
  • 扁平网站设计seo是什么岗位的缩写
  • 工商企业网站群晖配置wordpress 80端口
  • 企业网站建设流程步骤镇江东翔网络科技有限公司
  • 网络工程师和做网站哪个难网络建站如何建成
  • 网站建设需要哪些项目游民星空是用什么做的网站
  • 旅游网站建设要如何做百度商城网站建设
  • destoon 网站搬家中国企业500强都有哪些企业
  • 商城网站前端更新商品天天做吗哈尔滨做网站优化
  • 新乡网站开发wordpress 产品分类侧边栏
  • 网站自己做自己的品牌好做互联网企业分类
  • 项目网站建设方案石家庄网站快速排名
  • 网站开发大作业报告做电商网站的参考书
  • Apache局域网网站制作wordpress外链自动保存
  • 网站备案号要怎么查询千锋教育培训机构地址
  • 门户网站建设要求几款免费流程图制作软件
  • 花生壳域名可以做网站域名吗wordpress内链工具
  • 猎头公司网站模板网站伪静态作用
  • 工程建设教育网站html成品网页模板下载