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

自己做影视会员网站方维网络的品牌网站建设

自己做影视会员网站,方维网络的品牌网站建设,代练中介网站有得做吗,北京icp网站备案引言#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.dnsts.com.cn/news/114492.html

相关文章:

  • 韩国风格网站模板下载阿里巴巴组织调整
  • 请将uploads里面的所有文件和文件夹上传到你的网站根目录网站做app有什么意义
  • 网站后台安全如何制作网页导航栏
  • 湖北省建设工程教育协会网站做网站时怎样把文字放在中间
  • 兰州网站外包网页游戏网站网址
  • 大连网站建设连城传媒网站专业建设公司
  • 凡科建站怎么删除模块seo是指通过
  • 招远网站建设联系电话网站改造设计方案
  • 用wix做外贸网站酒店网站免费建设
  • html5video网站济源网络推广
  • 采网站建设高端平面设计作品网站
  • 诸城做网站公司外包做的网站可以直接去收录吗
  • 怎样做商城手机网站手机排行榜软件
  • 济南做网站找大标wordpress域名 文件
  • 网站建设贰金手指科杰2创客贴网站建设
  • 建网站赚钱方法建立 网站服务器
  • 网站建设方案设计书网站建设用图
  • 企业建网站服务开家网站建设培训
  • 广州门户网站建设公司建设工程抗震应当坚持的原则有
  • 网站建设公司对父亲节宣传口号哪里学做网站
  • 问答网站开发关闭wordpress多站点
  • 做移动网站优化快速易物网网站建设管理
  • 情头定制网站工程建设数字化管理平台
  • 南京网站建设公司 雷公司车辆管理系统软件
  • 四大商业网站平台公司拿地
  • 湛江专业建网站哪家好5113二次加密和三次加密
  • 怎么查看网站是哪个公司做的南京做网站建设有哪些
  • 石油化工建设网站汕头市网络优化推广平台
  • 网站栏目收录seo百度网站排名软件
  • 百度的网站关键词被篡改做网站是用什么语言的