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

玉石电商网站建设方案百度推广代理商查询

玉石电商网站建设方案,百度推广代理商查询,设计头像 制作 免费,有哪些做简历的好网站目录 建造者模式 简介 使用场景 优缺点 模式结构 实现 原型模式 简介 应用场景 优缺点 模式结构 实现 建造者模式 简介 将复杂对象的构建与表示进行分离#xff0c;使得同样的构建过程可以创建不同的表示。是一个将复杂的对象分解为多个简单的对象#xff0c;然…目录 建造者模式 简介 使用场景 优缺点 模式结构 实现 原型模式 简介 应用场景 优缺点 模式结构 实现 建造者模式 简介 将复杂对象的构建与表示进行分离使得同样的构建过程可以创建不同的表示。是一个将复杂的对象分解为多个简单的对象然后一步一步构建而成。它将变与不变分离即产品的组成部分是不变的但是每一部分都可以灵活选择。 使用场景 1.当创建对象复杂时可以将创建对象的步骤分离出去使用建造者模式 2.对于一些复杂的对象如果对象的属性是由许多不同部分组成的而这些部分需要按照一定的步骤进行创建那么就可以使用建造者模式 3.如果有许多相似的对象需要被创建而且这些对象的创建过程相同只是初始值不同那么就可以使用建造者模式 4.如果想要创建一个对象但是对象的创建过程需要使用一些敏感信息比如密码等那么就可以使用建造者模式来保证这些敏感信息的安全性 优缺点 优点 1.封装性好构建和表示分离 2.扩展性好各个具体的建造者相互独立有利于系统解耦 3.客户端不必知道产品内部的组成和细节建造者可以对创建过程逐步细化而不对其他模块产生任何影响便于控制细节风险 缺点 1.产品的组成部分必须相同限制了其使用范围 2.产品内部发生变化建造者也要修改后期维护成本较大 模式结构 角色 产品角色包含多个组成部分的复杂对象由具体建造者来创建其各个零部件 抽象建造者包含创建产品各个子部件的抽象方法接口 具体建造者实现 Builder 接口完成复杂产品的各个部件的具体创建方法 指挥者调用建造者对象中的部件构造与装配方法完成复杂对象的创建在指挥者中不涉及具体产品的信息 结构图 实现 //产品角色包含多个组成部件的复杂对象class Product {private String partA;private String partB;private String partC; ​public void setPartA(String partA) {this.partA partA;} ​public void setPartB(String partB) {this.partB partB;} ​public void setPartC(String partC) {this.partC partC;} ​public void show() {//显示产品的特性} } ​ //抽象建造者包含创建产品各个子部件的抽象方法abstract class Builder {//创建产品对象protected Product product new Product();public abstract void buildPartA();public abstract void buildPartB();public abstract void buildPartC();//返回产品对象public Product getResult() {return product;} }//具体建造者实现了抽象建造者接口。 public class ConcreteBuilder extends Builder {public void buildPartA() {product.setPartA(建造 PartA);}public void buildPartB() {product.setPartB(建造 PartB);}public void buildPartC() {product.setPartC(建造 PartC);} }//指挥者调用建造者中的方法完成复杂对象的创建class Director {private Builder builder;public Director(Builder builder) {this.builder builder;}//产品构建与组装方法public Product construct() {builder.buildPartA();builder.buildPartB();builder.buildPartC();return builder.getResult();} }//调用 public class Client {public static void main(String[] args) {Builder builder new ConcreteBuilder();Director director new Director(builder);Product product director.construct();product.show();} } 原型模式 简介 允许通过复制或克隆一个已存在的对象来创建一个新对象而无需从头开始创建。这种模式在需要生成大量复制相似对象时特别有用。 应用场景 1.创建新对象成本较大时 2.系统要保存对象的状态而对象的状态变化很小 3.避免使用分层次的工厂类来创建分层次的对象 优缺点 优点 1.通过复制已有对象而不是从头创建节约了时间和资源 2.如果对象包含多层嵌套深复制会消耗太多资源原型模式通过浅复制可以避免 3.可以避免通过构造方法复制时可能出现的错误 不足 1.增加了系统的复杂性需要处理原始对象的复制和克隆操作 2.复制对象增加了内存使用量 3.复制对象时需确保所有的引用关系都正确的复制了 模式结构 角色 抽象原型类声明克隆方法的接口是所有具体原型类的公共父类可以是抽象类、接口和具体的实现类 具体原型类实现抽象原型类中声明的克隆方法在克隆方法中返回一个自己的克隆对象 客户类让一个原型对象克隆自己而创建一个新的对象在客户类中只需要直接实例化或通过工厂方法的创建一个原型对象再通过该对象的克隆方法即可获得多个相同的对象 实现 1.创建接口抽象类 public abstract class Shape implements Cloneable {private String id;protected String type;abstract void draw();public String getType(){return type;}public String getId() {return id;}public void setId(String id) {this.id id;}public Object clone() {Object clone null;try {clone super.clone();} catch (CloneNotSupportedException e) {e.printStackTrace();}return clone;} } 2.拓展抽象类的实体类 public class Rectangle extends Shape {public Rectangle(){type Rectangle;}Overridepublic void draw() {System.out.println(Inside Rectangle::draw() method.);} }public class Square extends Shape {public Square(){type Square;}Overridepublic void draw() {System.out.println(Inside Square::draw() method.);} }public class Circle extends Shape {public Circle(){type Circle;}Overridepublic void draw() {System.out.println(Inside Circle::draw() method.);} } 3.创建一个类从数据库获取实体类 import java.util.Hashtable;public class ShapeCache {private static HashtableString, Shape shapeMap new HashtableString, Shape();public static Shape getShape(String shapeId) {Shape cachedShape shapeMap.get(shapeId);return (Shape) cachedShape.clone();}// 对每种形状都运行数据库查询并创建该形状// shapeMap.put(shapeKey, shape);// 例如我们要添加三种形状public static void loadCache() {Circle circle new Circle();circle.setId(1);shapeMap.put(circle.getId(),circle);Square square new Square();square.setId(2);shapeMap.put(square.getId(),square);Rectangle rectangle new Rectangle();rectangle.setId(3);shapeMap.put(rectangle.getId(),rectangle);} } 4.进行克隆 public class PrototypePatternDemo {public static void main(String[] args) {ShapeCache.loadCache();Shape clonedShape (Shape) ShapeCache.getShape(1);System.out.println(Shape : clonedShape.getType()); Shape clonedShape2 (Shape) ShapeCache.getShape(2);System.out.println(Shape : clonedShape2.getType()); Shape clonedShape3 (Shape) ShapeCache.getShape(3);System.out.println(Shape : clonedShape3.getType()); } } 与通过对一个类进行实例化来构造新对象不同的是原型模式是通过拷贝一个现有对象生成新对象的。浅拷贝实现 Cloneable重写深拷贝是通过实现 Serializable 读取二进制流。
http://www.yingshimen.cn/news/109995/

相关文章:

  • 网站建设的总体目标考核指标wordpress用户角色权限
  • wordpress怎样做单页网站广州天河区建设网站公司
  • 网站怎样赚钱成都网站建设开发公
  • dz网站首页html代码在哪阿里云服务器618
  • 广西建网站公司wordpress太卡了
  • wordpress 新网站 代码手机网站建站多少钱
  • 如何为网站做推广浩森宇特北京做网站
  • 搭建网站框架荷兰服务器租用
  • 上海网页制作与网站设计正规网站建设空间哪个好
  • 微企点网站建设模拟创建一个公司
  • 投票网站定制选择郑州网站建设
  • 来个网站2021能用的石家庄网站制作公司哪家好
  • 网页网站导读怎么做给酒吧做网站
  • 知名网站建设公司做网站建设工资高吗
  • 个人博客网站的设计与实现劳务派遣公司注册条件
  • 做网站会员功能徐州网站建设的特点
  • 网站的建设公司哪家好百度seo费用
  • 南通网站备案温州建设网站哪家好
  • 网站文章页内链结构不好可以改吗官方网站 优帮云
  • 免费做苗木的网站wordpress网站搜索引擎
  • 网站开发技术描述网站建设有什么岗位
  • 电脑网站兼职在哪里做dw网站设计步骤
  • 电子商务网站功能设计与分析网页开发和网站开发
  • 招聘网站如何做推广制作小程序的软件
  • 小说网站防盗做的最好的是室内设计师简历内容
  • wordpress企业站制作wordpress5导航图标
  • 怎么做根优酷差不多的网站dedecms的网站放在哪个文件夹里
  • 新沂建设网站试客网站建设
  • 服务器屏蔽网站举例说明网络营销的方法
  • 网站建设使用的基本技术网站建设需要待摊吗