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

站酷logo设计从58做网站怎么做

站酷logo设计,从58做网站怎么做,顺企网官网下载,如何选择网站开发语言1 基本概念 1.1 大佬文章 设计模式是什么鬼#xff08;原型#xff09; 详解设计模式#xff1a;原型模式-腾讯云开发者社区-腾讯云 1.2 知识汇总 #xff08;1#xff09;原型模式#xff1a;先 new 一个实例#xff0c;该实例符合需求#xff0c;之后再根据这个…1 基本概念 1.1 大佬文章 设计模式是什么鬼原型 详解设计模式原型模式-腾讯云开发者社区-腾讯云 1.2 知识汇总 1原型模式先 new 一个实例该实例符合需求之后再根据这个实例为原型重复构建新的对象 2所属类型创建型模式创建型模式 3作用重复创建对象 4优点可以重复获得对象的同时保持较高的性能 1.3 基本构成 1抽象原型类抽象原型类是定义具有克隆自己的方法接口是所有具体原型类的公共父类可以是抽象类也可以是接口在 Java 中 Cloneable 接口可以看作是抽象原型类 2具体原型类根据这个类可以获得一个原型对象并且这个类中需要重现 clone 方法可以根据这个 clone 方法复制对象 3访问类使用具体原型类中的 clone 方法可以不断重复的复制对象 2 Java 中的克隆 根据现有的对象复制一个新的对象的操作就是克隆Java 中克隆分为浅克隆和深克隆我个人更喜欢说浅拷贝和深拷贝浅拷贝和深拷贝的区别主要在重写 clone 方法上有所区别但是虽然之前有了解过拷贝的相关问题但是发今天发现其实这里面还是有一些细节需要注意的。 2.1 拷贝的必要条件 1实现 Cloneable 接口这个接口其实是一个标记接口想要使用 clone 方法就必须先实现这个接口否则该类的 clone 方法是不可用的。 2重写 clone 方法仅仅实现 Cloneable 接口还不能达到要求还需要重写这个方法否则依然不能使用 clone 方法 2.2 浅拷贝 浅拷贝是将某个对象的所有成员属性都赋值给 clone 得到的对象 1简单数据类型如 int 等等的数据类型直接将值拷贝过去 2非简单数据类型如引用类型的数据是将引用的地址赋值给拷贝得到的对象也就是说并没有新建一个成员对象而是简单的将引用复制一遍 package se.wangs.clonedemo.pojo;/*** -- coding: UTF-8 -- *** author wangs* date 2023/12/6 9:07* description 演示浅拷贝*/ public class Teacher {private String name;private String idNo;public String getName() {return name;}public void setName(String name) {this.name name;}public String getIdNo() {return idNo;}public void setIdNo(String idNo) {this.idNo idNo;} } package se.wangs.clonedemo.pojo;/*** -- coding: UTF-8 -- *** author wangs* date 2023/12/6 9:08* description 演示clone*/ public class Student implements Cloneable{private String idNo;private String name;private Teacher teacher;public String getIdNo() {return idNo;}public void setIdNo(String idNo) {this.idNo idNo;}public String getName() {return name;}public void setName(String name) {this.name name;}public Teacher getTeacher() {return teacher;}public void setTeacher(Teacher teacher) {this.teacher teacher;}Overridepublic Student clone() {try {Student clone (Student) super.clone();// TODO: copy mutable state here, so the clone cant change the internals of the originalreturn clone;} catch (CloneNotSupportedException e) {throw new AssertionError();}} } package se.wangs.clonedemo;import se.wangs.clonedemo.pojo.Student; import se.wangs.clonedemo.pojo.Teacher;/*** -- coding: UTF-8 -- *** author wangs* date 2023/12/4 16:37* description 浅拷贝*/ public class ShallowClone {public static void main(String[] args) {Teacher teacher1 new Teacher();teacher1.setIdNo(001);teacher1.setName(teacher_001);Student student1 new Student();student1.setIdNo(101);student1.setName(student_101);student1.setTeacher(teacher1);Student cloneStudent student1.clone();System.out.println(---------------------------);System.out.println(student1);System.out.println(idNo student1.getIdNo());System.out.println(name student1.getName());System.out.println(teacher student1.getTeacher());System.out.println(---------------------------);System.out.println(cloneStudent);System.out.println(idNo cloneStudent.getIdNo());System.out.println(name cloneStudent.getName());System.out.println(teacher cloneStudent.getTeacher());} } 运行测试类得到的结果如下 --------------------------- se.wangs.clonedemo.pojo.Student41629346 idNo 101 name student_101 teacher se.wangs.clonedemo.pojo.Teacher214c265e --------------------------- se.wangs.clonedemo.pojo.Student448139f0 idNo 101 name student_101 teacher se.wangs.clonedemo.pojo.Teacher214c265e 说明 student1原对象cloneStudent浅拷贝得到的对象 可以看到student 中有一个引用类型的成员变量 teacher浅拷贝得到的 cloneStudent 中的 teacher 变量与 student1 指向的对象相同 2.3 深拷贝 深拷贝就是会将引用类型的变量做进一步处理clone 出的对象的引用数据类型的成员变量会指向一个新的变量 package se.wangs.clonedemo.pojo;/*** -- coding: UTF-8 -- *** author wangs* date 2023/12/6 9:07* description 演示浅拷贝*/ public class Teacher implements Cloneable{private String name;private String idNo;public String getName() {return name;}public void setName(String name) {this.name name;}public String getIdNo() {return idNo;}public void setIdNo(String idNo) {this.idNo idNo;}Overridepublic Teacher clone() {try {Teacher clone (Teacher) super.clone();// TODO: copy mutable state here, so the clone cant change the internals of the originalreturn clone;} catch (CloneNotSupportedException e) {throw new AssertionError();}} } package se.wangs.clonedemo.pojo;/*** -- coding: UTF-8 -- *** author wangs* date 2023/12/6 9:08* description 演示clone*/ public class Student implements Cloneable{private String idNo;private String name;private Teacher teacher;public String getIdNo() {return idNo;}public void setIdNo(String idNo) {this.idNo idNo;}public String getName() {return name;}public void setName(String name) {this.name name;}public Teacher getTeacher() {return teacher;}public void setTeacher(Teacher teacher) {this.teacher teacher;}Overridepublic Student clone() {try {Student clone (Student) super.clone();// 获得原来的 teacher 对象并clone出一个新的teacher对象Teacher newTeacher clone.getTeacher().clone();// 重新设置teacherclone.setTeacher(newTeacher);return clone;} catch (CloneNotSupportedException e) {throw new AssertionError();}} } package se.wangs.clonedemo;import se.wangs.clonedemo.pojo.Student; import se.wangs.clonedemo.pojo.Teacher;/*** -- coding: UTF-8 -- *** author wangs* date 2023/12/6 10:09* description 深拷贝*/ public class DeepClone {public static void main(String[] args) {Teacher teacher1 new Teacher();teacher1.setIdNo(001);teacher1.setName(teacher_001);Student student1 new Student();student1.setIdNo(101);student1.setName(student_101);student1.setTeacher(teacher1);Student cloneStudent student1.clone();System.out.println(---------------------------);System.out.println(student1);System.out.println(idNo student1.getIdNo());System.out.println(name student1.getName());System.out.println(teacher student1.getTeacher());System.out.println(---------------------------);System.out.println(cloneStudent);System.out.println(idNo cloneStudent.getIdNo());System.out.println(name cloneStudent.getName());System.out.println(teacher cloneStudent.getTeacher());} } 运行得到 --------------------------- se.wangs.clonedemo.pojo.Student41629346 idNo 101 name student_101 teacher se.wangs.clonedemo.pojo.Teacher214c265e --------------------------- se.wangs.clonedemo.pojo.Student448139f0 idNo 101 name student_101 teacher se.wangs.clonedemo.pojo.Teacher7cca494b 可以看到得到的 teacher 对象的地址变了 2.4 总结 浅拷贝和深拷贝的主要区别就是对引用类型的变量的处理 1浅拷贝引用类型的变量拷贝前后指向同一个对象 2深拷贝引用类型的变量拷贝后指向新的对象 3核心重写 clone 方法时对引用类型变量的处理不同 参考资料 Java深入理解深拷贝和浅拷贝区别_java深拷贝浅拷贝-CSDN博客 3 原型设计模式 3.1 设计模式体验 1抽象原型类Cloneable 接口 2具体原型类 package se.wangs.prototype;/*** -- coding: UTF-8 -- *** author wangs* date 2023/12/6 9:07* description*/ public class Teacher implements Cloneable{private String name;private String idNo;public String getName() {return name;}public void setName(String name) {this.name name;}public String getIdNo() {return idNo;}public void setIdNo(String idNo) {this.idNo idNo;}Overridepublic Teacher clone() {try {Teacher clone (Teacher) super.clone();// TODO: copy mutable state here, so the clone cant change the internals of the originalreturn clone;} catch (CloneNotSupportedException e) {throw new AssertionError();}} } package se.wangs.prototype;/*** -- coding: UTF-8 -- *** author wangs* date 2023/12/6 9:08* description 具体原型类*/ public class Student implements Cloneable{private String idNo;private String name;private Teacher teacher;public String getIdNo() {return idNo;}public void setIdNo(String idNo) {this.idNo idNo;}public String getName() {return name;}public void setName(String name) {this.name name;}public Teacher getTeacher() {return teacher;}public void setTeacher(Teacher teacher) {this.teacher teacher;}Overridepublic Student clone() {try {Student clone (Student) super.clone();// 获得原来的 teacher 对象并clone出一个新的teacher对象Teacher newTeacher clone.getTeacher().clone();// 重新设置teacherclone.setTeacher(newTeacher);return clone;} catch (CloneNotSupportedException e) {throw new AssertionError();}} } 3访问类 package se.wangs.prototype;/*** -- coding: UTF-8 -- *** author wangs* date 2023/12/6 10:30* description 访问类*/ public class Client {public static void main(String[] args) {Teacher teacher new Teacher();teacher.setName(okay);teacher.setIdNo(0001);Student student new Student();student.setIdNo(stu_001);student.setName(onesun);student.setTeacher(teacher);System.out.println(---------------------------);System.out.println(student);System.out.println(idNo student.getIdNo());System.out.println(name student.getName());System.out.println(teacher student.getTeacher());for (int i 0; i 10; i) {System.out.println(---------------------------);Student cloneStudent student.clone();System.out.println(cloneStudent);System.out.println(idNo cloneStudent.getIdNo());System.out.println(name cloneStudent.getName());System.out.println(teacher cloneStudent.getTeacher());}} } 3.2 总结 1原型设计模式的思想就是拿到一个对象将该对象当作一个标准然后使用 clone 方法不断重复的去复制这个标准原型对象从而得到大量同类型的对象在游戏等等场景中应用广泛。 2使用原型模式而不是 new 对象的优点是节约 new 需要消耗的资源提高系统的性能。 3原型模式的应用 Spring 框架对 bean 对象进行管理而默认的 bean 对象是单例模式的也可以使用 scope 属性指定为非单例模式当 scope 属性为socpeprototype时就是非单例模式其实这里使用的就是原型模式
http://www.yutouwan.com/news/481891/

相关文章:

  • 现在中型公司做网站用的是什么框架南昌网站建设公司案例
  • 广州市专业做网站工商注册服务平台
  • 吴忠网站建设报价东营人力考试信息网官网
  • 住房和城乡建设部网站打不开公司做网站需准备什么材料
  • 效果好的徐州网站建设网站改版中
  • 湛江电子商务网站建设asp.net怎么做网站
  • 众车网是哪家公司网站网 公司
  • 个人网站备案下载站收费用的网站怎么做
  • 网站设计开户ui设计培训平台
  • 张家口住房和城乡建设部网站嘉兴网站优化联系方式
  • 中商华兴建设有限公司网站环球培训机构官网
  • 南京网站建设索q.479185700网站备案接入商
  • 坊子营销型网站建设知识库管理系统解决方案
  • 做简单的网站班级优化大师网页版登录
  • 专做h5的公司网站石景山网站建设公司哪个好
  • 网站工信部超链接怎么做开发商延期交房怎么办
  • 专门做装修的网站宝塔在本地搭建wordpress
  • 杭州市城乡建设网站discuz下载
  • 淘宝网站建设论文软件开发的环节有哪些
  • 深圳网站建设机构企业管理培训课程免费
  • 论坛做视频网站南京app外包
  • 静态网站开发与实施的论文七台河新闻在线直播
  • 来安网站建设宣传片制作公司业务
  • 深圳建设网站公司简介南宁 网站推广
  • 网站平台建设步骤平台搭建心得
  • 网站描述设置我的世界做弊端网站
  • 网站更改备案信息在哪深圳有做网站最近价格?
  • 本地搭建wordpressseo优化广告
  • 用户体验 网站 外国扬州建设信用网站
  • 个人网站做接口可以么查询建筑资质的网站