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

网站策划书包括哪些内容嘉兴模板建站公司

网站策划书包括哪些内容,嘉兴模板建站公司,手机网站建设的图片,华联app每周四抢电影票目录 建造者模式 简介 使用场景 优缺点 模式结构 实现 原型模式 简介 应用场景 优缺点 模式结构 实现 建造者模式 简介 将复杂对象的构建与表示进行分离#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.zqtcl.cn/news/306353/

相关文章:

  • 微信公众号文章排版设计软媒win7优化大师
  • 长春建设局网站处长做箱包关注哪个网站
  • 中国建筑集团有限公司怎么样seo是怎么优化推广的
  • 芜湖建设网站eclipse开发网站用vue做前端
  • 外贸网站推广制作教程wordpress留言页面模版
  • 手机网站 像素网站建设生意怎么样
  • html5网站源代码凡科互动app下载
  • asp评价网站开发文档福州做网站的哪家好
  • 合肥网站建设方案优化写作网站大全
  • 专门提供做ppt小素材的网站网站定位
  • 临沂市建设局兰山区网站wordpress 去除下划线
  • 如何做一张图片的网站关于实验室建设的英文网站
  • 网站建设文本居中代码山东网站推广营销设计
  • 山东桓台建设招投标网站北京建设信息港网站
  • 为什么网站要域名个人养老金制度最新消息
  • 公众号开发是不是网站开发公司网站建设分录
  • 云南省住房建设厅网站代理二级分销系统
  • 四川建设人才培训网站临沂网站制作页面
  • 用vue做网站建设工程合同属于什么合同
  • 赶集的网站怎么做广告投放报价
  • php 家政网站白嫖云服务器
  • 长春网站关键词推广优秀网站建设哪个公司好
  • php实战做网站视频教程站长工具网站测速
  • 当下网站建设常见的网址有哪些
  • 洪雅网站建设事业单位门户网站建设包含内容
  • 外网如何查看局域网建设的网站区块链开发工程师要求
  • 网站首页三张海报做多大怎么做网上直营店网站
  • 网站制作新手教程视频省建设厅网站安全生产标准化
  • 自动建设网站系统阿里云虚拟主机多网站
  • 区块链app排名网站seo其应用