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

如何建设移动网站上海旅游景点

如何建设移动网站,上海旅游景点,互联网营销培训班,企业开展网络营销方案2023年12月13日#xff0c;周三上午 今天上午在适配器模式#xff0c;我发现如果想真正理解适配器模式#xff0c;就必须学会使用C中的接口#xff0c;就必须明白为什么要在C中使用接口#xff0c;所以重新学习了一下C中的接口 目录 C中的接口有什么用用代码说明“实现多…2023年12月13日周三上午 今天上午在适配器模式我发现如果想真正理解适配器模式就必须学会使用C中的接口就必须明白为什么要在C中使用接口所以重新学习了一下C中的接口 目录 C中的接口有什么用用代码说明“实现多态性”用代码说明“隐藏实现细节” 用代码说明“实现代码解耦“ C中的接口有什么用 在C中虽然没有像其他编程语言如Java和C#中的明确接口interface概念但可以使用抽象类来实现类似的功能。 接口在软件开发中起到了以下几个重要的作用 实现多态性接口提供了一种定义规范的方式可以通过多态性实现对象的替换和统一的调用方式。通过接口不同的类可以实现相同的接口并以统一的方式进行调用。 隐藏实现细节接口定义了一组可供外部使用的方法同时隐藏了具体实现的细节。这样使用接口的代码只需要关注接口定义的方法而不需要了解具体的实现细节。 实现代码解耦通过接口将不同的部分分离开来使得代码的耦合度降低。接口作为一个中间层将不同的模块解耦使得代码更加灵活和可维护。 提高代码的可扩展性通过接口可以为系统提供一种扩展的方式。当需要增加新的功能时只需要实现相应的接口并符合接口定义的规范而无需修改原有的代码。 用代码说明“实现多态性” #include iostream// 定义接口抽象类 class Shape { public:virtual void draw() 0; // 纯虚函数 };// 实现接口的类 class Circle : public Shape { public:void draw() override {std::cout Drawing a circle. std::endl;} };class Rectangle : public Shape { public:void draw() override {std::cout Drawing a rectangle. std::endl;} };int main() {// 创建接口指针并使用多态性调用不同的实现类的方法Shape* shape1 new Circle();Shape* shape2 new Rectangle();shape1-draw(); // 调用Circle类的draw方法shape2-draw(); // 调用Rectangle类的draw方法delete shape1;delete shape2;return 0; }在这个例子中定义了一个接口Shape其中包含纯虚函数draw()。 然后创建了两个实现了该接口的类Circle和Rectangle并分别实现了draw()方法。 在main()函数中创建了两个接口指针shape1和shape2分别指向Circle和Rectangle的对象。通过这两个指针可以以统一的方式调用不同的实现类的方法实现了多态性。 用代码说明“隐藏实现细节”  #include iostream// 定义接口抽象类 class Database { public:virtual void connect() 0; // 纯虚函数virtual void query(const std::string sql) 0; // 纯虚函数 };// 实现接口的类 class MySQLDatabase : public Database { public:void connect() override {std::cout Connected to MySQL database. std::endl;}void query(const std::string sql) override {std::cout Executing query: sql std::endl;// 实际的查询逻辑} };int main() {// 使用接口指针调用接口的方法隐藏了具体实现的细节Database* db new MySQLDatabase();db-connect();db-query(SELECT * FROM customers);delete db;return 0; }在这个例子中定义了一个接口Database其中包含纯虚函数connect()和query()。 然后创建了一个实现了该接口的类MySQLDatabase并实现了这两个方法。 在main()函数中通过接口指针db调用接口的方法而不需要关心具体实现的细节。这样可以隐藏实现的细节只需要使用接口提供的方法即可。 为了更好的说明“通过接口隐藏实现细节”现在我来假设一个场景 我是一个主程序员然后还下辖了另一个程序员。 现在我发现程序需要对数据库进行操作然后我就用抽象类了定义一个数据库操作类在这个数据库操作类里面用虚函数写了很多我认为程序会使用到的函数。 之后我把实现这个抽象类——数据库操作类的任务交给了我下辖的程序员。 我下辖的程序员实现后我只需要通过这个抽象类或者说接口通过指针或引用直接调用我下辖的程序员实现的功能就可以了我不需要知道他是怎么实现的。 用代码说明“实现代码解耦“ #include iostream// 定义接口抽象类 class Logger { public:virtual void log(const std::string message) 0; // 纯虚函数 };// 实现接口的类 class ConsoleLogger : public Logger { public:void log(const std::string message) override {std::cout Console Logger: message std::endl;} };class FileLogger : public Logger { public:void log(const std::string message) override {std::cout File Logger: message std::endl;// 将日志写入文件} };class LogManager { private:Logger* logger;public:LogManager(Logger* logger) {this-logger logger;}void doLog(const std::string message) {logger-log(message);} };int main() {// 创建不同的日志记录器对象并将其注入到日志管理器中Logger* consoleLogger new ConsoleLogger();Logger* fileLogger new FileLogger();LogManager logManager1(consoleLogger);LogManager logManager2(fileLogger);// 调用日志管理器的方法实现了代码的解耦 logManager1.doLog(This is a log message from console logger.); logManager2.doLog(This is a log message from file logger.);delete consoleLogger; delete fileLogger;return 0; }在这个例子中定义了一个接口Logger其中包含纯虚函数log()。 然后创建了两个实现了该接口的类ConsoleLogger和FileLogger并分别实现了log()方法。 接下来创建了一个LogManager类其中包含一个Logger指针成员变量。在LogManager的构造函数中将不同的日志记录器对象注入到LogManager中。 在main()函数中创建了两个LogManager对象logManager1和logManager2分别使用了ConsoleLogger和FileLogger作为日志记录器。通过调用LogManager的方法实现了代码的解耦不同的日志记录器对象可以被注入到LogManager中实现了灵活的日志记录功能。
http://www.dnsts.com.cn/news/58485.html

相关文章:

  • 免费网站奖励自己游戏黄山旅游官方平台
  • 试玩平台类网站怎么做的网页游戏排行榜开服时间
  • 上海猎头公司电话seo搜索引擎优化视频
  • 用dedecms织梦做中英文网站白金域名的特点
  • 中煤第一建设公司网站科技公司主要经营什么
  • 建站推广文案山西网站建设 哪家好
  • 玩具网站开发背景连江福州网站建设
  • 网站建设v5star进销存管理软件哪个好
  • 网站设计的优点wordpress描述代码
  • 企业网站的建设原则是什么?梁志天室内设计公司官网
  • 平面设计素材网站大全北京网站建站推
  • 汉口网站建设制作洛阳专业网站设计开发制作建站公司
  • 微信客户端网站建设m99ww094cn 苍井空做的网站
  • 网站不收录排名会降吗苏中建设南京区域公司
  • 建设通官方网站正在为您跳转中
  • 中国建设部网站四库平台拼图式网站开发
  • 如何搭建微网站微信推广网站
  • 网站建设营销口号做网站写的代号好跟不好的区别
  • 做餐厅网站的需求分析报告阜新市建设学校管方网站
  • 肥西县城乡建设局网站wordpress 3.9 wp_editor not work
  • 高端网站建设好处网页界面设计中交互设计是指
  • 花都网站建设价格企业怎么建立网站
  • 沈阳地区精神文明建设网站计算机专业主要学什么科目
  • 网站制作价格表网站没有织梦后台
  • 大山子网站建设百度小说风云榜排名
  • 郑州网站高端设计网站的数据库选择
  • 哪些大型网站用python做的网站上做旅游卖家要学什么条件
  • 网站建设七点网站浏览量提升
  • 微网站平台二级域名网站可以做关键词优化吗
  • 武昌网站建设制作外贸电商网站模板