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

徐州做网站的公司哪些好网站seo关键词优化技巧

徐州做网站的公司哪些好,网站seo关键词优化技巧,web制作个人简历代码,电商商城网站建设方案一.原型模式 通过 n e w 产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。 \color{red}{通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。} 通过new产生一个对象需要非常繁琐的数据准备或访问权限&#xf…

一.原型模式

  • 通过 n e w 产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。 \color{red}{通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。} 通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。
  • 就是java中的克隆技术,以某个对象为原型,复杂出新的对象。显然,新的对象具备原型对象的特点。
  • 优势: 效率高(直接克隆,避免了重新执行构造过程步骤)。
  • 克隆类似new,但是不同于new。new创建新的对象属性采用的是默认值。克隆出的对象的属性值完全和原型对象相同。并且克隆出的新对象改变不会影响原型对象。然后,再改变克隆对象的值。
  • 原型模式一般很少单独出现,一般是和工厂方法模式一起出现,通过 c l o n e 方法创建一个对象,然后由工厂方法提供给调用者。 \color{red}{原型模式一般很少单独出现,一般是和工厂方法模式一起出现,通过clone方法创建一个对象,然后由工厂方法提供给调用者。} 原型模式一般很少单独出现,一般是和工厂方法模式一起出现,通过clone方法创建一个对象,然后由工厂方法提供给调用者。

二.原型模式实现

  • cloneable接口和clone方法;
  • 利用序列化和反序列化实现深克隆。

三.浅克隆和深克隆

  • 所谓浅克隆、深克隆指的是:克隆对象和原型对象属性对象引用是否同一个,是同一个就是浅克隆,否则就是深克隆。


四.代码展示

  • 1.浅克隆代码

/*** 克隆羊  多利 对象*/
public class Sheep implements Cloneable{private String name;private Date birthday;@Overrideprotected Object clone() throws CloneNotSupportedException {//ֱ直接调用Object对象的clone()方法Object obj=super.clone();   return obj;}public Sheep() {}public Sheep(String name, Date birthday) {this.name = name;this.birthday = birthday;}public String getName() {return name;}public Date getBirthday() {return birthday;}public void setName(String name) {this.name = name;}public void setBirthday(Date birthday) {this.birthday = birthday;}
}
  • 浅克隆调用

/*** 原型模式------>浅复制(浅克隆)*/
public class App {public static void main(String[] args) throws CloneNotSupportedException {Date date=new Date(123123123L);Sheep s1=new Sheep("多利",date);Sheep s2=(Sheep) s1.clone();System.out.println(s1+"\t"+s1.getName()+"---->"+s1.getBirthday());//这里更改后 s2 克隆也相应更改date.setTime(321213543123L);System.out.println(s1+"\t"+s1.getName()+"---->"+s1.getBirthday());//可以更改s2的属性s2.setName("多多利");System.out.println(s2+"\t"+s2.getName()+"---->"+s2.getBirthday());}
}
  • 浅克隆调用结果

com.reyco.prototype.Sheep@7852e922	多利---->Fri Jan 02 18:12:03 CST 1970
com.reyco.prototype.Sheep@7852e922	多利---->Fri Mar 07 01:59:03 CST 1980
com.reyco.prototype.Sheep@55f96302	多多利---->Fri Mar 07 01:59:03 CST 1980
  • 浅克隆调用结果:原型对象的引用属性改变后,克隆对象也会跟着改变。



  • 2. 深克隆代码

/*** 原型模式------>深复制(深克隆)*/
public class Sheep2 implements Cloneable{private String name;private Date birthday;	@Overrideprotected Object clone() throws CloneNotSupportedException {Object obj=super.clone();    //直接调用Object对象的clone()方法	//添加以下代码实现深复制Sheep2 s=(Sheep2) obj; s.birthday=(Date) this.birthday.clone();		return obj;}public Sheep2() {}public Sheep2(String name, Date birthday) {this.name = name;this.birthday = birthday;}public String getName() {return name;}public Date getBirthday() {return birthday;}public void setName(String name) {this.name = name;}public void setBirthday(Date birthday) {this.birthday = birthday;}
}
  • 深克隆调用

/*** 原型模式------>深复制(深克隆)* @author Administrator*/
public class App2 {public static void main(String[] args) throws CloneNotSupportedException {Date date=new Date(123123123L);Sheep2 s=new Sheep2("多利",date);Sheep2 s2=(Sheep2) s.clone();System.out.println(s.getName()+"---->"+s.getBirthday());//这里更改后 s2克隆不会更改date.setTime(321213543123L);System.out.println(s.getName()+"---->"+s.getBirthday());//可以更改s2的属性s2.setName("多多利");System.out.println(s2.getName()+"---->"+s2.getBirthday());}
}
  • 深克隆调用结果

多利---->Fri Jan 02 18:12:03 CST 1970
多利---->Fri Mar 07 01:59:03 CST 1980
多多利---->Fri Jan 02 18:12:03 CST 1970
  • 深克隆调用结果:原型对象的引用属性改变后,克隆对象不会跟着改变。

五.序列化和反序列化实现深克隆

  • 代码

/*** 序列化和反序列化实现深克隆必须实现Serializable接口*/
public class Sheep implements Serializable{private String name;private Date birthday;public Sheep() {}public Sheep(String name, Date birthday) {this.name = name;this.birthday = birthday;}public String getName() {return name;}public Date getBirthday() {return birthday;}public void setName(String name) {this.name = name;}public void setBirthday(Date birthday) {this.birthday = birthday;}
}public static void main(String[] args) throws  Exception {Date date=new Date(123123123L);Sheep s=new Sheep("多利",date);System.out.println(s.getName()+"---->"+s.getBirthday());//使用序列化和反序列化实现深复制ByteArrayOutputStream bos=new ByteArrayOutputStream();ObjectOutputStream oos=new ObjectOutputStream(bos);oos.writeObject(s);byte[] bytes =bos.toByteArray();	ByteArrayInputStream bis=new ByteArrayInputStream(bytes);ObjectInputStream ois=new ObjectInputStream(bis);Sheep s2=(Sheep) ois.readObject();//这里更改后 s2克隆不会更改date.setTime(321213543123L);System.out.println(s.getName()+"---->"+s.getBirthday());//可以更改s2的属性s2.setName("多多利");System.out.println(s2.getName()+"---->"+s2.getBirthday());
}



更多设计模式学习:

          设计模式(1):介绍
          设计模式(2):单例模式
          设计模式(3):工厂模式
          设计模式(4):建造者模式
          设计模式(6):桥接模式
          设计模式(7):装饰器模式
          设计模式持续更新中…

http://www.yidumall.com/news/79837.html

相关文章:

  • 哪些网站是做色选机销售的推广竞价账户托管
  • 做flash网站遇到函数成都seo顾问
  • 龙华公司做网站114啦网址导航官网
  • 百度站长工具seo查询ip或域名查询网
  • 做公众号封面网站兔子bt樱桃搜索磁力天堂
  • 2021年最新热点素材网站建设优化
  • 网站建设的目的和作用西安关键词排名提升
  • 网站开发平台的定义企业宣传片视频
  • 织梦后台怎么建设网站seo网站排名优化案例
  • 文章资讯类网站模板郑州百度推广公司
  • 佛山找人做网站营业推广经典案例
  • 做防水的网站有哪些长沙优化网站
  • 如何做登陆界面的网站手机制作网站app
  • 如果给公司做网站如何提高网站seo排名
  • 佛山专业网站设计活动策划方案详细模板
  • 沙田做网站国际新闻界
  • 宁海企业网站建设网络营销的实现方式包括
  • 做爰网站下载seo外包服务项目
  • wordpress网站建设代运营公司是怎么运营的
  • 中国城乡建设部网站百度平台商家
  • 中英网站建设百度指数的作用
  • 做网站高流量赚广告费怎么让关键词快速上首页
  • 业余做衣服的网站网站生成器
  • 厦门建设网站公司怎么百度推广
  • 企业网络管理系统山西搜索引擎优化
  • 空间排版设计网站公司员工培训方案
  • 石家庄 网络科技百度推广优化排名怎么收费
  • 中煤建设集团网站域名申请
  • 电子商务网站建设的总体目标关键词搜索排名查询
  • 网站流量赚钱无货源电商怎么做