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

创建网站代码是什么中企动力高端网站建设

创建网站代码是什么,中企动力高端网站建设,海外服务器租用的价格,互联网网站备案表文章目录 一.什么是原型设计模式#xff1f;二.原型模式的特点三.原型模式的结构四.原型模式的优缺点五.原型模式的 C 实现六.原型模式的 Java 实现七. 代码解析八.总结 类图#xff1a; 原型设计模式类图 一.什么是原型设计模式#xff1f; 原型模式#xff08;Prototype… 文章目录 一.什么是原型设计模式二.原型模式的特点三.原型模式的结构四.原型模式的优缺点五.原型模式的 C 实现六.原型模式的 Java 实现七. 代码解析八.总结 类图 原型设计模式类图 一.什么是原型设计模式 原型模式Prototype Pattern 是一种创建型设计模式它通过复制现有对象来生成新对象而不是通过实例化类来创建。这种模式基于对象的克隆机制适用于需要频繁创建对象的场景可以提高性能并减少复杂的初始化过程。 二.原型模式的特点 克隆对象通过复制已有对象生成新对象而非通过构造函数创建。性能优化避免复杂对象创建的高开销。灵活性可以动态添加或删除原型而不影响其他对象。 三.原型模式的结构 Prototype抽象原型类定义了克隆方法通常是 clone() 方法。ConcretePrototype具体原型类实现抽象原型类的克隆方法。Client客户端调用克隆方法创建新对象而无需关心对象的具体类型。 四.原型模式的优缺点 优点: 性能优势克隆比重新创建对象效率更高。动态性无需编译时依赖类可以在运行时动态生成对象。避免依赖性通过克隆机制可以避免直接依赖类的构造函数。 缺点: 复杂性增加需要正确实现克隆方法尤其是深拷贝场景。资源消耗可能会为每个可克隆的对象维护克隆逻辑导致类职责增多。 五.原型模式的 C 实现 #include iostream #include string #include memory // for smart pointers using namespace std;// 抽象原型类 class Prototype { public:virtual ~Prototype() default;// 克隆方法纯虚函数virtual unique_ptrPrototype clone() const 0;virtual void display() const 0; };// 具体原型类1 class ConcretePrototypeA : public Prototype { private:string data; // 模拟一些状态 public:ConcretePrototypeA(string data) : data(data) {}// 克隆方法unique_ptrPrototype clone() const override {return make_uniqueConcretePrototypeA(*this); // 调用拷贝构造函数}void display() const override {cout ConcretePrototypeA with data: data endl;} };// 具体原型类2 class ConcretePrototypeB : public Prototype { private:int value; // 模拟一些状态 public:ConcretePrototypeB(int value) : value(value) {}// 克隆方法unique_ptrPrototype clone() const override {return make_uniqueConcretePrototypeB(*this); // 调用拷贝构造函数}void display() const override {cout ConcretePrototypeB with value: value endl;} };// 客户端代码 void ClientCode(const Prototype prototype) {auto clonedObject prototype.clone(); // 克隆一个对象clonedObject-display(); // 显示克隆对象的内容 }int main() {// 创建原型对象ConcretePrototypeA prototypeA(PrototypeA Data);ConcretePrototypeB prototypeB(42);cout Cloning ConcretePrototypeA: endl;ClientCode(prototypeA);cout \nCloning ConcretePrototypeB: endl;ClientCode(prototypeB);return 0; }六.原型模式的 Java 实现 // 抽象原型类 abstract class Prototype implements Cloneable {public abstract Prototype clone();public abstract void display(); }// 具体原型类A class ConcretePrototypeA extends Prototype {private String data;public ConcretePrototypeA(String data) {this.data data;}Overridepublic Prototype clone() {try {return (Prototype) super.clone();} catch (CloneNotSupportedException e) {throw new RuntimeException(Clone not supported!);}}Overridepublic void display() {System.out.println(ConcretePrototypeA with data: data);} }// 具体原型类B class ConcretePrototypeB extends Prototype {private int value;public ConcretePrototypeB(int value) {this.value value;}Overridepublic Prototype clone() {try {return (Prototype) super.clone();} catch (CloneNotSupportedException e) {throw new RuntimeException(Clone not supported!);}}Overridepublic void display() {System.out.println(ConcretePrototypeB with value: value);} }// 客户端代码 public class PrototypePatternExample {public static void main(String[] args) {// 创建原型对象ConcretePrototypeA prototypeA new ConcretePrototypeA(PrototypeA Data);ConcretePrototypeB prototypeB new ConcretePrototypeB(42);System.out.println(Cloning ConcretePrototypeA:);Prototype clonedA prototypeA.clone();clonedA.display();System.out.println(\nCloning ConcretePrototypeB:);Prototype clonedB prototypeB.clone();clonedB.display();} }七. 代码解析 抽象原型类Prototype 定义了一个 clone() 方法用于生成当前对象的副本。使用虚函数使得派生类可以实现自己的克隆逻辑。 具体原型类ConcretePrototypeA 和 ConcretePrototypeB 实现了 clone() 方法通过调用自身的拷贝构造函数完成对象的克隆。ConcretePrototypeA 和 ConcretePrototypeB 模拟了不同的数据成员演示了克隆不同类型对象的效果。 客户端代码 接收一个 Prototype 对象的引用并通过调用 clone() 方法克隆出一个新对象。客户端无需关心具体的类只需通过 Prototype 接口调用克隆方法即可。 八.总结 原型模式通过克隆的方式创建新对象而不依赖于类的构造函数。这种模式在需要频繁创建对象、或者需要动态生成对象的场景中非常有用。通过正确实现 clone() 方法可以有效提高程序的灵活性和性能。然而在实现复杂对象的深拷贝时需要特别注意对象之间的依赖关系和资源管理以避免潜在的错误。 应用场景: 复杂对象的创建初始化需要耗费大量资源的对象可以通过克隆来生成新对象。性能优化避免使用构造函数或工厂方法重复创建对象。动态对象管理需要动态生成对象而不依赖具体类。
http://www.hkea.cn/news/14501035/

相关文章:

  • asp网站后台管理系统下载工具型网站有哪些
  • 申请注册公司费用阿里巴巴关键词排名优化
  • 大冶市建设局网站装修公司名称大全
  • 做营销网站建设挣钱吗中山网站开发招聘
  • 如何看访问网站的dnswordpress按用户喜好排序
  • 电商运营自学网站丽水市莲都区建设局网站
  • 惠州城乡建设部网站手机棋牌app制作教程
  • 网络营销网站建设公司大连房产网
  • 为什么做游戏网站被封提高工作效率的方法不正确的是
  • 怎么提交网站关键词杭州cms建站模板
  • 做的好的装修公司网站提高网站建设水平
  • 费县网站建设个人网站源码html
  • ppt做视频的模板下载网站有哪些苏州优化网站公司
  • 园林绿化网站建设如何注册微信小程序商家
  • 微信小程序开发网站怎么制作一个简单的网页
  • 网站显示iis7护理专业简历
  • 做二手手机交易网站专业3合1网站建设电话
  • 网站别人能打开我打不开房地产建设企业网站
  • 太和网站建设广告推广服务平台
  • 国外网站用什么dns好WordPress搜索不通过数据库
  • 网上花店 网站源代码医院网站建设投标书
  • wordpress调用相关文章百度seo优化是什么
  • 网站建设实质wordpress的意思和读音
  • 网站是什么时候出现的wordpress企业免费主题下载
  • 网站建设要注意哪些事情一级网站建设
  • 自学html做网站要多久桂林论坛网
  • 做php网站方向要会什么做个手机网站多少钱
  • 江西恒通建设工程有限公司网站东莞网络公司网站建设
  • 如何做网站容易收录洞泾做网站
  • 网站建设的实训技术总结湖南交通建设监理协会网站