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

百度图在图不留网站方常见的网站建设程序有哪些

百度图在图不留网站方,常见的网站建设程序有哪些,网站建设前的ER图,网站短信验证码怎么做文章目录 1. 定义2. 开闭原则的详细解释3. 实现开闭原则的方法4. 总结 1. 定义 开闭原则(Open-Closed Principle,OCP)是面向对象设计中的五大原则(SOLID)之一,由Bertrand Meyer提出。开闭原则的核心思想是…

在这里插入图片描述

文章目录

  • 1. 定义
  • 2. 开闭原则的详细解释
  • 3. 实现开闭原则的方法
  • 4. 总结


1. 定义

开闭原则(Open-Closed Principle,OCP)是面向对象设计中的五大原则(SOLID)之一,由Bertrand Meyer提出。开闭原则的核心思想是:

软件实体(类、模块、函数等)应该对扩展开放,但对修改关闭。

这意味着,当需求发生变化时,应该通过添加新的代码来扩展系统的行为,而不是修改已有的代码。这样可以减少对现有代码的影响,降低引入新错误的风险,并提高代码的可维护性和可复用性。


2. 开闭原则的详细解释

1. 对扩展开放:当系统需要增加新的功能时,应该允许通过添加新的代码来实现,而不是修改现有的代码。

2. 对修改关闭:一旦一个模块或类已经完成并通过测试,就不应该再修改它的源代码,除非是为了修复bug。


3. 实现开闭原则的方法

为了实现开闭原则,通常会使用以下设计模式或技术:

  • 抽象与多态:通过定义抽象类或接口,允许子类或实现类扩展行为。

  • 策略模式:将算法或行为封装在独立的类中,使得它们可以相互替换。

  • 模板方法模式:定义一个算法的骨架,允许子类在不改变算法结构的情况下重新定义算法的某些步骤。

  • 装饰器模式:动态地为对象添加新的行为,而不改变其原有结构。

实例分析
假设我们有一个简单的图形绘制系统,系统需要支持绘制不同类型的图形(如圆形、矩形等)。最初,系统只支持绘制圆形,但随着需求的变化,我们需要支持绘制矩形。

不符合开闭原则的实现

class Graphic {
public:void drawCircle() {// 绘制圆形的代码}void drawRectangle() {// 绘制矩形的代码}
};void drawAllShapes(Graphic& graphic) {graphic.drawCircle();graphic.drawRectangle();
}

在这个实现中,每当需要增加一个新的图形类型时,我们都需要修改Graphic类,添加新的绘制方法。这违反了开闭原则,因为我们需要修改已有的代码来扩展功能。

符合开闭原则的实现
为了符合开闭原则,我们可以使用抽象和多态来设计系统。

#include <iostream>
#include <vector>// 抽象基类
class Shape {
public:virtual void draw() const = 0;virtual ~Shape() = default;
};// 圆形类
class Circle : public Shape {
public:void draw() const override {std::cout << "Drawing a circle." << std::endl;}
};// 矩形类
class Rectangle : public Shape {
public:void draw() const override {std::cout << "Drawing a rectangle." << std::endl;}
};// 绘制所有图形
void drawAllShapes(const std::vector<Shape*>& shapes) {for (const auto& shape : shapes) {shape->draw();}
}int main() {std::vector<Shape*> shapes;shapes.push_back(new Circle());shapes.push_back(new Rectangle());drawAllShapes(shapes);// 清理内存for (const auto& shape : shapes) {delete shape;}return 0;
}

在这个实现中,我们定义了一个抽象的Shape类,并让Circle和Rectangle继承自Shape。当需要增加新的图形类型时,我们只需要创建一个新的类并实现draw方法,而不需要修改现有的代码。这样,系统对扩展是开放的,对修改是关闭的。


4. 总结

开闭原则是面向对象设计中的重要原则,它鼓励我们通过扩展而不是修改来增加系统的功能。通过使用抽象和多态,我们可以设计出符合开闭原则的系统,从而提高代码的可维护性和可复用性。

http://www.yayakq.cn/news/151514/

相关文章:

  • 如何一键建淘宝客网站好听的网络科技公司名字
  • 个人网站可以名字写官网吗网页设计教学设计
  • 苏州大型网站设计公司google推广有效果吗
  • 网站上用的字体网络规划设计方案实例
  • 个人网站做百度竞价wordpress商用可以用吗
  • 做网站用的国外节点服务器wordpress depth
  • seo网站建设是什么重庆网站建设-言西早工作室响应式
  • 专业的网站建设房子装修设计图用什么软件
  • 网站策划网广西桂林旅游团报价
  • 个人外贸网站制作外包制作app
  • 青岛建网站多少钱wordpress 微信关注插件
  • 全国电子网站建设想开个网站做外贸怎么做
  • 网络工程师 网站建设合肥做app公司
  • 志愿者协会网站建设u盘启动盘制作工具
  • 青岛网站建设企业wordpress简单网址导航模板
  • 南通建设网站注册域名com和cn
  • 湖北省职业能力建设处网站淘宝是什么语言做的网站
  • 周村区住房和城乡建设厅网站推广100种方式
  • 接网站建设的平台虚拟机做的网站怎么让外网访问不了网
  • 哪个网站做的最好wordpress页面添加按钮
  • 找素材的网站大全中国十大装修公司
  • 做公众号商城原型的网站汕头网站建设公司有哪些
  • 网站和微信订阅号优势网站建设 51下拉平台
  • 网站建设流程包括哪些内容网络营销平台的类型
  • mvc 网站路径音平商城谁做的网站
  • 中国最大免费wap网站网页尺寸1920
  • 网站主域名是什么wordpress 4.0 谷歌
  • 网站建设与规划结论排行榜软件
  • 京东的网站是哪家公司做河北建设安装工程有限公司怎么样
  • 银川网站公司国内网站做得好的公司