当前位置: 首页 > 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.pierceye.com/news/381205/

相关文章:

  • 枣庄建设网站wordpress如何自己编辑
  • 河南省城乡住房建设厅网站首页哪个公司网站备案快
  • 湘潭做网站价格优选磐石网络微信里怎么进入自己的公众号
  • 孟州网站wordpress主题游戏cms
  • 用php做的网站怎么上传莱州教体局网站
  • 网站互动性无锡模板建站
  • 中铁十六局工资明细沧州网站seo公司
  • 北京网站建设软件网页制作自我介绍源代码
  • 怎么注册公司的网站免费可以做旅游海报 的网站
  • 贵阳网站建设包首页微商建立网站
  • ppt制作软件全模板免费大连seo网站管理
  • 网站门户设计设计师的网站有哪些
  • 旅游公司网站建设百度一下官方下载安装
  • 网站上传大马后怎么做宁波seo推广公司电话
  • 长沙建网站培训机构织梦网站采集侠怎么做
  • 行政事业单位网站建设动漫设计与制作大学
  • 网站链接推广工具建立网站平台
  • 做网站需要学什么软件做网站智能工具
  • 成品网站代理上海的建设项目招投标在哪个网站
  • 阿里云的网站建设花钱么广州市建设职业培训学校网站
  • 网站建设和前端开发的区别哈尔滨网站制作方案
  • 改进网站的建议网易邮箱网页版
  • 南宁市做网站的公司新浪云能用wordpress
  • 网站建设品牌有哪些重庆seo排名收费
  • 发优惠券网站怎么做大连开发区做网站
  • 烟台免费网站建设宝应网站开发
  • 用网站做淘宝客的人多吗3liang 设计网站 源码
  • 实训小结网站建设国内外最新新闻
  • 最新网站排名优化方法云龙徐州网站开发
  • 扬州做网站多少钱免费拿货的代理商