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

广东网站开发推荐如何建设小网站

广东网站开发推荐,如何建设小网站,网站改版要注意什么,关键词优化的技巧一、引言 在 C 编程中#xff0c;有效地处理对象的状态变化以及合理运用设计模式可以极大地提高代码的可维护性、可扩展性和可读性。本文将深入探讨 C 如何处理对象的状态变化以及如何实现工厂模式。 二、C 中对象的状态变化处理 使用成员变量表示状态 class GameCharacte…一、引言 在 C 编程中有效地处理对象的状态变化以及合理运用设计模式可以极大地提高代码的可维护性、可扩展性和可读性。本文将深入探讨 C 如何处理对象的状态变化以及如何实现工厂模式。 二、C 中对象的状态变化处理 使用成员变量表示状态 class GameCharacter {public:int health;int energy;// 其他成员函数}; 在 C 中对象的状态通常由成员变量来表示。例如一个表示游戏角色的类可能有成员变量来表示生命值、能量值、位置等状态。通过修改这些成员变量的值可以改变对象的状态。 状态模式 class TrafficLight {public:virtual void display() 0;};class RedLight : public TrafficLight {public:void display() override {cout Red Light endl;}};class YellowLight : public TrafficLight {public:void display() override {cout Yellow Light endl;}};class GreenLight : public TrafficLight {public:void display() override {cout Green Light endl;}}; 状态模式是一种行为型设计模式它允许一个对象在其内部状态改变时改变其行为。例如一个交通信号灯可以有三种状态红灯、黄灯和绿灯。每个状态下信号灯的行为是不同的。通过在交通信号灯类中维护一个指向当前状态对象的指针可以在状态变化时切换到不同的状态对象。 观察者模式 class Stock {public:int price;vectorclass Observer* observers;void attach(Observer* observer) {observers.push_back(observer);}void detach(Observer* observer) {// 从观察者列表中移除指定观察者}void notify() {for (Observer* observer : observers) {observer-update();}}};class Observer {public:virtual void update() 0;};class Investor : public Observer {public:void update() override {// 处理股票价格变化的通知}}; 观察者模式可以用于当对象的状态变化时通知其他对象。例如一个股票交易系统中当股票价格变化时需要通知所有关注该股票的用户。 三、C 中工厂模式的实现 简单工厂模式 class Shape {public:virtual void draw() 0;};class Circle : public Shape {public:void draw() override {cout Drawing a circle endl;}};class Rectangle : public Shape {public:void draw() override {cout Drawing a rectangle endl;}};class ShapeFactory {public:static Shape* createShape(int type) {switch (type) {case 1:return new Circle();case 2:return new Rectangle();default:return nullptr;}}}; 简单工厂模式是一种创建型设计模式它提供了一个创建对象的方法根据传入的参数决定创建哪种具体的对象。例如一个图形绘制系统中可以使用简单工厂来创建不同类型的图形对象。使用简单工厂模式可以将对象的创建和使用分离提高代码的可维护性。 工厂方法模式 class Car {public:virtual void drive() 0;};class Sedan : public Car {public:void drive() override {cout Driving a sedan endl;}};class SUV : public Car {public:void drive() override {cout Driving an SUV endl;}};class CarFactory {public:virtual Car* createCar() 0;};class SedanFactory : public CarFactory {public:Car* createCar() override {return new Sedan();}};class SUVFactory : public CarFactory {public:Car* createCar() override {return new SUV();}}; 工厂方法模式是在简单工厂模式的基础上将工厂的创建方法抽象成抽象方法由具体的工厂子类实现。例如在一个汽车制造系统中可以有不同类型的汽车工厂每个工厂负责生产特定类型的汽车。工厂方法模式更加符合开闭原则即对扩展开放对修改关闭。 抽象工厂模式 class Chair {public:virtual void sit() 0;};class Table {public:virtual void putThings() 0;};class ModernChair : public Chair {public:void sit() override {cout Sitting on a modern chair endl;}};class ModernTable : public Table {public:void putThings() override {cout Putting things on a modern table endl;}};class AntiqueChair : public Chair {public:void sit() override {cout Sitting on an antique chair endl;}};class AntiqueTable : public Table {public:void putThings() override {cout Putting things on an antique table endl;}};class FurnitureFactory {public:virtual Chair* createChair() 0;virtual Table* createTable() 0;};class ModernFurnitureFactory : public FurnitureFactory {public:Chair* createChair() override {return new ModernChair();}Table* createTable() override {return new ModernTable();}};class AntiqueFurnitureFactory : public FurnitureFactory {public:Chair* createChair() override {return new AntiqueChair();}Table* createTable() override {return new AntiqueTable();}}; 抽象工厂模式提供了一个创建一系列相关或相互依赖对象的接口而无需指定它们具体的类。例如一个家具制造系统中可以有不同风格的家具工厂每个工厂负责生产一系列相关的家具。抽象工厂模式适用于需要创建一组相关对象的场景。 四、总结 在 C 中处理对象的状态变化可以使用成员变量、状态模式和观察者模式等方法。而工厂模式可以帮助我们更好地创建对象提高代码的可维护性和可扩展性。不同的工厂模式适用于不同的场景我们可以根据具体的需求选择合适的模式。通过合理地运用这些技术我们可以写出更加优秀的 C 代码。
http://www.zqtcl.cn/news/286240/

相关文章:

  • 莱芜网站开发代理四川网络推广服务
  • 应该知道的网站网站全网建设莱芜
  • 北京网站页设计制作广州专业网站改版
  • 重庆网站建设建站收费免费外链网盘
  • 做加盟代理的网站比较好的网页网站设计
  • 兴义网站开发企业标准备案平台官网
  • 蓝彩网络科技_齐齐哈尔微信营销_齐齐哈尔网站建设会员卡管理系统哪里买
  • 织梦门户网站做大后建个人免费网站用哪个
  • 深圳市建设管理中心西安官网seo
  • 网站开发工作方案自己做的网站怎么维护
  • 潍坊建设部门管理网站做网站如何接单
  • 定制高端网站建设设计建立的近义词
  • 企业网站建设进度邢台163官网
  • 17做网店网站池尾替代wordpress 搜索
  • 网站建设资料 优帮云商品分类标准
  • 鄂尔多斯 网站建设俐侎族网站建设背景
  • 佛山专业网站建设公司上海公司官网
  • 那里做网站好网站模板 登陆
  • 网站的服务器打不开wordpress 修改默认路径
  • 外贸网站做几种产品合肥网络公司哪个最好
  • 长乐区建设局网站一般通过什么渠道了解防灾减灾知识
  • 泰安商城网站开发设计什么网站备案比较快
  • 织梦网站修改首页图片网站名称去哪里注册
  • 电脑版 做网站尺寸怎么查找网站后台
  • 南京网站建设公司国际新闻头条最新消息
  • 类似于wordpress的网站吗做网站前端难吗
  • 做外贸网站维护费是多少小程序源码提取
  • 设计网站作品欣赏有那些网站注册商标官网入口
  • 装修网站怎么做的外贸谷歌推广怎么样
  • 建设部网站监理资质换证it外包 北京