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

视频剪辑素材免费网站做网站如何添加表单

视频剪辑素材免费网站,做网站如何添加表单,企业网站色彩搭配,自主网站创造型模式-原型模式 创建重复对象-场景体验解决方案#xff08;原型模式#xff09;原型模式定义 创建重复对象-场景体验 今天来一个大客户#xff0c;他要求帮他下100个订单。每个订单除了用户ID#xff0c;和用户名不同之外#xff0c;其他个人信息完全相同。 订单类 … 创造型模式-原型模式 创建重复对象-场景体验解决方案原型模式原型模式定义 创建重复对象-场景体验 今天来一个大客户他要求帮他下100个订单。每个订单除了用户ID和用户名不同之外其他个人信息完全相同。 订单类 public class Order{//id 主键无实际意义private String id;//订单编号private String orderNo;//产品编码private String productNo;//产品名称private String productName;//产品类型private String productType;//订单购买数量private Integer num;//用户idprivate String userId;//用户名称private String userName;//用户电话号码private String tel;//用户住址private String address;//购买店铺用于识别改订单是在哪一个店铺下的单。private Store store; } //商店类 public class Store{//店铺idprivate String id;//店铺名称private String name;//店铺负责人private String head;//店铺地址private Strign address; }制造数据 public void copyOrder(){//专卖店Store store new Store();store.setId(dp001);store.setName(地球村专卖店);store.setHead(村长);store.setAddress(东风东街001号);//第一个订单Order order new Order();order.setId(111111);order.setOrderNo(dd001);order.setProductNo(cp001);order.setProductName(产品1);order.setProductType(工具类);order.setNum(50);order.setUserId(U001);order.setUserName(用户1);order.setTel(17660887362);order.setAddress(地球村-种花家);order.setStore(store);//第二个订单Order order1 new Order();order.setId(111112);order.setOrderNo(dd002);order.setProductNo(order.getProductNo());order.setProductName(order.getProductName());order.setProductType(order.getProductType());order.setNum(order.getNum());order.setUserId(U002);order.setUserName(用户2);order.setTel(order.getTel());order.setAddress(order.getAddress());order.setStore(store);...还要100个 }上面的代码就是现状当然也可以使用构造方法但是过程都是一样的需要大量重复的代码。非常不美观。 解决方案原型模式 原型模式可以理解为将一个完整对象的复制创建过程抽离成一个方法使我们要创建一个相同对象的时候不需要再依次赋值。 模拟底层实现 public class Order{//id 主键无实际意义private String id;//订单编号private String orderNo;//产品编码private String productNo;//产品名称private String productName;//产品类型private String productType;//订单购买数量private Integer num;//用户idprivate String userId;//用户名称private String userName;//用户电话号码private String tel;//用户住址private String address;//购买店铺用于识别改订单是在哪一个店铺下的单。private Store store;public Order clone(){Order order1 new Order();order1.setId(this.id);order1.setOrderNo(this.orderNo);order1.setProductNo(this.productNo);order1.setProductName(this.productName);order1.setProductType(this.productType);order1.setNum(this.num);order1.setUserId(this.userId);order1.setUserName(this.userName);order1.setTel(this.tel);order1.setAddress(this.address);order1.setStore(this.store);return order1;}}我们使用的时候 public void copyOrder(){//专卖店Store store new Store();store.setId(dp001);store.setName(地球村专卖店);store.setHead(村长);store.setAddress(东风东街001号);//第一个订单Order order new Order();order.setId(111111);order.setOrderNo(dd001);order.setProductNo(cp001);order.setProductName(产品1);order.setProductType(工具类);order.setNum(50);order.setUserId(U001);order.setUserName(用户1);order.setTel(17660887362);order.setAddress(地球村-种花家);order.setStore(store);//第二个订单Order order1 order.clone();order.setId(111112);order.setOrderNo(dd002);order.setUserId(U002);order.setUserName(用户2);...之后的100个相同 }通过上述方法使原本赋值操作的工作量大量减少只需要关注自己个性化的赋值即可。 上面的clone方法是完全我自己写的用来模拟的Java为我们提供了更好的实现不需要我们去做上面无聊的赋值工作 只需要Order类实现Cloneable接口重写clone方法在这个方法里面调用supper.clone()方法就好了。 public class Order{//id 主键无实际意义private String id;//订单编号private String orderNo;//产品编码private String productNo;//产品名称private String productName;//产品类型private String productType;//订单购买数量private Integer num;//用户idprivate String userId;//用户名称private String userName;//用户电话号码private String tel;//用户住址private String address;//购买店铺用于识别改订单是在哪一个店铺下的单。private Store store;Overridepublic Order clone(){Order order1 new Order();try {order1 (Order) super.clone();}catch (Exception e){System.out.println(e.getMessage());}return order1;} }有兴趣的未来大佬们可以去看一下clone的源码这里用的super.clone()是Object中的clone方法。这个方法是native的方法本地方法。Java中用native关键字修饰的函数表明该方法的实现并不是在Java中去完成而是由C/C去完成并被编译成了.dll由Java去调用。方法的具体实现体在dll文件中对于不同平台其具体实现应该有所不同。用native修饰即表示操作系统需要提供此方法Java本身需要使用。   clone主要做的就是开创新的空间将原对象的数据复制过去再给返回引用。在Java里面所有的类如果重写clone方法就都是个性化的处理了。但是需要注意的是这个native的clone是浅拷贝。也就是在对象中还有对象的话内部的对象clone之后还是原来的对象。 以咱们的代码举例   在Order类中有一个属性是Store的实例。在上面的clone执行之后如果改变clone之后的实例中的store属性原本的order中的store属性也会改变。 在上面“copyOrder”代码的最后一行增加如下 System.out.println(order2order1);System.out.println(order:order);System.out.println(改变前order1order1.getStore());System.out.println(改变前orderorder.getStore());order1.getStore().setAddress(地球村-鹰酱家门头房);System.out.println(改变后order1order1.getStore());System.out.println(改变前orderorder.getStore());可以看到我们只改变了order1实例中store的address属性但是order的对应属性也跟着一起变了。 如何解决上面的浅拷贝 原型模式定义 原型模式Prototype Pattern用于创建重复的对象同时又能保证性能。这种类型的设计模式属于创建型模式它提供了一种创建对象的最佳方式之一。 这种模式是实现了一个原型接口该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时则采用这种模式。例如一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象在下一个请求时返回它的克隆在需要的时候更新数据库以此来减少数据库调用。 定义是引用自菜鸟教程-原型模式
http://www.zqtcl.cn/news/854115/

相关文章:

  • 广州网站建设找哪家免费搭建网站的软件
  • 培训班管理系统 免费太原优化网站排名
  • 上海怎么做网站网站让图片充满屏幕怎么做
  • 哈尔滨营销网站建设wordpress 加载图片不显示
  • 电商网站功能结构图网站做中秋专题怎么弄
  • 深圳专业建站平台陕西省建设工程质量安全监督总站网站
  • 制作网页的网站的软件是用户反馈数据分析软件园
  • 南京 做网站seo查询网站
  • 卖高仿名牌手表网站共享wifi小程序搭建
  • c#网站开发模板想在意大利做购物网站
  • 2015做那些网站能致富60天做网站
  • 沈阳个人建站模板网站图片计时器怎么做
  • 福州定制网站开发北京排名seo
  • 地方门户网站开发方案长沙有哪个学校可以学网站建设
  • 建个购物网站水果建设网站前的市场分析
  • 建网站的目的小程序登录代码
  • 南京有名的网站建设公司自学室内装修设计教程
  • 新乡市做网站的公司开发公司简介企业介绍
  • 礼品网站模板淘宝店铺购买交易平台
  • 属于公司的网站怎么做外贸服装网站开发
  • 做暧网站泸州公司做网站
  • 做文库类网站网站所有权 备案
  • 网站开发主要内容站长之家网站查询
  • 网站推广优化排名公司wordpress添加说说
  • 维护一个网站要多少钱企业怎么做网站
  • 怎么做兼职网站成都必去十大网红景点
  • 网站建设如何传视频教程电脑网站设计公司
  • 网站开发培训教程制作网站开发公司
  • 网站前端做报名框代码seo教育培训机构
  • 做网站要学习什么分销网站