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

html网站源码天津网站建设求职简历

html网站源码,天津网站建设求职简历,企业网站建设不要空间可以吗,瓷器网站怎么做引言#xff1a; 编写一个与具体业务无关的示例代码。这个示例代码主要体现以下几个设计思想和模式#xff1a; 接口模式#xff08;Interface Pattern#xff09;#xff1a;定义接口类#xff0c;并让具体实现类去实现该接口的功能。 工厂模式#xff08;Factory Pa…引言 编写一个与具体业务无关的示例代码。这个示例代码主要体现以下几个设计思想和模式 接口模式Interface Pattern定义接口类并让具体实现类去实现该接口的功能。 工厂模式Factory Pattern根据不同条件动态生成不同的对象实例。 模板方法模式Template Method Pattern父类定义方法的结构子类实现具体逻辑。 多线程处理创建子类继承自QThread并实现线程中的具体逻辑。 示例代码设计 核心逻辑一个简单的日志系统根据日志等级如info、warning、error动态生成不同的日志处理线程并执行相应的日志输出。 工厂模式工厂方法根据日志类型生成不同的处理线程。 模板方法模式每个日志处理线程继承自基类基类定义通用处理逻辑子类实现具体日志输出。 示例代码 1. 日志处理接口定义 cpp复制代码#ifndef LOGHELPERINTERFACE_H #define LOGHELPERINTERFACE_H ​ #include QString #include QVector ​ class LogHelperInterface { public:virtual ~LogHelperInterface() {} ​// 记录日志virtual void logMessage(const QString message) 0; }; ​ #endif // LOGHELPERINTERFACE_H 2. 基础日志引擎类 cpp复制代码#ifndef LOGENGINE_H #define LOGENGINE_H ​ #include QMap #include QThread #include loghelperinterface.h ​ class LogEngine : public QObject {Q_OBJECT public:LogEngine(int logID, LogHelperInterface* helper);~LogEngine(); ​void logMessage(const QString message); ​static LogEngine* getEngine(const int logID); ​ private:static QMapint, LogEngine* m_logMap; // 用于存储不同日志引擎实例 ​int m_logID;LogHelperInterface* m_pHelper; }; ​ #endif // LOGENGINE_H 3. 基础日志处理线程类 cpp复制代码#ifndef LOGTHREADBASE_H #define LOGTHREADBASE_H ​ #include QThread #include loghelperinterface.h ​ class LogThreadBase : public QThread {Q_OBJECT public:explicit LogThreadBase(LogHelperInterface* helper, QObject* parent nullptr); ​static LogThreadBase* createLogHandler(const QString logType, LogHelperInterface* helper); ​virtual void handleLog(const QString message) 0; ​ protected:LogHelperInterface* m_logHelper; }; ​ #endif // LOGTHREADBASE_H 4. 工厂模式实现 cpp复制代码#include logthreadbase.h #include infologthread.h #include warninglogthread.h #include errorlogthread.h ​ LogThreadBase* LogThreadBase::createLogHandler(const QString logType, LogHelperInterface* helper) {if (logType info) {return new InfoLogThread(helper);} else if (logType warning) {return new WarningLogThread(helper);} else if (logType error) {return new ErrorLogThread(helper);} ​return nullptr; } 5. 基础日志处理线程类实现 cpp复制代码#include logthreadbase.h ​ LogThreadBase::LogThreadBase(LogHelperInterface* helper, QObject* parent): QThread(parent), m_logHelper(helper) { } 6. InfoLogThread 具体实现 cpp复制代码#ifndef INFOLOGTHREAD_H #define INFOLOGTHREAD_H ​ #include logthreadbase.h ​ class InfoLogThread : public LogThreadBase {Q_OBJECT public:explicit InfoLogThread(LogHelperInterface* helper, QObject* parent nullptr); ​void handleLog(const QString message) override; }; ​ #endif // INFOLOGTHREAD_H cpp复制代码#include infologthread.h #include QDebug ​ InfoLogThread::InfoLogThread(LogHelperInterface* helper, QObject* parent): LogThreadBase(helper, parent) { } ​ void InfoLogThread::handleLog(const QString message) {qDebug() INFO: message;m_logHelper-logMessage(INFO: message); } 7. WarningLogThread 具体实现 cpp复制代码#ifndef WARNINGLOGTHREAD_H #define WARNINGLOGTHREAD_H ​ #include logthreadbase.h ​ class WarningLogThread : public LogThreadBase {Q_OBJECT public:explicit WarningLogThread(LogHelperInterface* helper, QObject* parent nullptr); ​void handleLog(const QString message) override; }; ​ #endif // WARNINGLOGTHREAD_H cpp复制代码#include warninglogthread.h #include QDebug ​ WarningLogThread::WarningLogThread(LogHelperInterface* helper, QObject* parent): LogThreadBase(helper, parent) { } ​ void WarningLogThread::handleLog(const QString message) {qDebug() WARNING: message;m_logHelper-logMessage(WARNING: message); } 8. ErrorLogThread 具体实现 cpp复制代码#ifndef ERRORLOGTHREAD_H #define ERRORLOGTHREAD_H ​ #include logthreadbase.h ​ class ErrorLogThread : public LogThreadBase {Q_OBJECT public:explicit ErrorLogThread(LogHelperInterface* helper, QObject* parent nullptr); ​void handleLog(const QString message) override; }; ​ #endif // ERRORLOGTHREAD_H cpp复制代码#include errorlogthread.h #include QDebug ​ ErrorLogThread::ErrorLogThread(LogHelperInterface* helper, QObject* parent): LogThreadBase(helper, parent) { } ​ void ErrorLogThread::handleLog(const QString message) {qDebug() ERROR: message;m_logHelper-logMessage(ERROR: message); } 9. 日志记录实现类 cpp复制代码#ifndef SIMPLELOGHELPER_H #define SIMPLELOGHELPER_H ​ #include loghelperinterface.h #include QDebug ​ class SimpleLogHelper : public LogHelperInterface { public:void logMessage(const QString message) override{// 这里我们简单将日志输出到控制台qDebug() Logging message: message;} }; ​ #endif // SIMPLELOGHELPER_H 10. 主函数示例 cpp复制代码#include QCoreApplication #include logengine.h #include simpleloghelper.h #include logthreadbase.h ​ int main(int argc, char *argv[]) {QCoreApplication a(argc, argv); ​SimpleLogHelper logHelper; ​// 创建日志引擎LogEngine* logEngine new LogEngine(1, logHelper); ​// 生成不同的日志处理线程LogThreadBase* infoLogThread LogThreadBase::createLogHandler(info, logHelper);LogThreadBase* warningLogThread LogThreadBase::createLogHandler(warning, logHelper);LogThreadBase* errorLogThread LogThreadBase::createLogHandler(error, logHelper); ​// 处理日志infoLogThread-handleLog(This is an info message);warningLogThread-handleLog(This is a warning message);errorLogThread-handleLog(This is an error message); ​return a.exec(); } 总结 接口模式LogHelperInterface 是接口SimpleLogHelper 实现了这个接口用于处理日志输出。 工厂模式LogThreadBase::createLogHandler 工厂方法根据传入的日志类型动态生成不同的日志处理线程如InfoLogThreadWarningLogThreadErrorLogThread。 模板方法模式LogThreadBase 作为抽象基类定义了日志处理的通用接口具体实现由子类完成。 通过这个示例展示了如何使用这些设计模式来构建一个灵活、可扩展的系统。
http://www.w-s-a.com/news/538075/

相关文章:

  • 松原企业网站建设设计素材网排名
  • 网站建设是那个行业广东公司排名
  • 制作网站要多少钱seo是如何优化
  • 求个网站2020急急急做金融网站拘留多久
  • 网站后台管理系统怎么进seo网络推广外包公司
  • 中山市 做网站网站建设如何上传文件
  • 网站呢建设公众号制作要求
  • 网站备案证明在自己电脑上做网站
  • 沈阳旅游团购网站建设怎么制作网站搜索窗口
  • 做化学合成的网站有哪些枣庄住房和城乡建设局网站
  • 天猫优惠券网站怎么做的网络连接
  • 保定网站建设多少钱公司网页网站建设+ppt模板下载
  • 用户上传商品网站用什么做建设跳转公积金网站
  • 买程序的网站上海市网站建设公司
  • 南通网站建设排名公司哪家好wordpress网站图片迁移
  • 河南省汝州文明建设门户网站博客网站建设源码
  • 单位建设网站的请示手机移动端网站案例
  • 国内做网站的企业网站结构有哪些类型
  • 南通网站建设制作公司苏州好的网站公司名称
  • 咸阳做网站开发公司哪家好珠海公司制作网站
  • 深圳网站建设好不好医疗网站前置审批
  • 做ic什么网站好安溪网站建设
  • 网站建设 慕课企业文化标语经典
  • 做短视频的网站都有哪些简约 时尚 高端 网站建设
  • 浦口区网站建设售后服务建设一个网站多少钱
  • 做个小网站大概多少钱广州h5网站
  • 360免费建站视频wordpress标签显示图片
  • 创建简易个人网站国外做网站被动收入
  • 轻定制网站建设网页培训哪个机构好
  • 青岛海诚互联做网站好吗计算机软件开发培训机构