
架构-模式设计
文章平均质量分 84
赵民勇
这个作者很懒,什么都没留下…
展开
-
大型系统的缓存设计
缓存及其一致性转载 2022-06-15 17:11:34 · 313 阅读 · 0 评论 -
Software Architecture Patterns翻译
介绍开发人员在没有合适架构的情况下开始编写程序是非常普遍的情况. 在这种情况下,大多数开发人员和架构师会采用传统分层架构模式(也称为n层架构),通过将源码模块分成各种包来表示抽象层。不幸的是,这种做法经常导致的是一个混乱的源码结构,它们缺乏明确的角色,职责和彼此之间的关系。 这通常被称为反模式的大泥球。没有通过架构设计的应用程序通常紧密耦合,脆弱,难以改变,没有清晰结构。如果没有完全理解系统中的每个组件和模块的内部工作原理的情况下,确定程序的架构特性会是非常困难的事情。关于程序部署和维护的基本问题也转载 2022-03-02 17:52:50 · 440 阅读 · 0 评论 -
rsync 服务部署详解
第1章 rsync软件介绍1.1什么是rsyncrsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。http://www.samba.org/ftp/rsync/rsync.html1.1.1全量及增量全量:将全部数据,进行传输覆盖增量:只传输差异部分的数据1.2实现增量复制的原理Rsync通过其独特的“quick check”算法,实现增量传输数据[root@backup ~]#man rsyncRsync fi...转载 2021-07-28 23:29:23 · 410 阅读 · 0 评论 -
QT中实现应用程序的单例化
一介绍通过编写一个QSingleApplication类,来实现Qt程序的单例化,原文的作者是在Windows Vista +Qt4.4 下实现的,不过应用在其他平台上是没问题的。(本文是我在http://www.qtcentre.org/wiki/index.php?title=SingleApplication上看到的)二代码方案一:使用Qt中的QSharedMemory,QLocalServer和QLocalSocket实现(不过需要在你的.pro里加上QT += network)..原创 2021-06-04 18:28:15 · 881 阅读 · 0 评论 -
应用程序单例化之文件锁
#define PROGRAM_NAME "you_program_name" #define PATH_MAX_LEN 1024 #define PID_STRING_LEN 64 /* * Check if the program is running * in: * const char *processName, Process name * out: * int, =0 not running, =1 isrunning */ int checkProcessRunning(const char原创 2021-06-04 21:50:11 · 200 阅读 · 0 评论 -
Qt编程:通过反射机制实现类名信息动态创建对象技术
根据类名信息动态创建对象技术,不仅可以降低代码的耦合度和复杂性,还可以实现脚本化编程技术,动态解析创建对象,提高内存利用率和应用程序灵活性。反射机制框架如下:Reflect类声明如下:typedef QWidget* (*Constructor)(QWidget* parent);class Reflect{public:Reflect();//通过类名,查找到注册的构造函数,并创建对象static QWidget *reflect(QWidget* p...转载 2021-06-04 20:16:48 · 809 阅读 · 0 评论 -
设计模式之策略模式(STRATEGY)
1 策略模式简介名称 Strategy 结构 图2如下: 参与者 抽象策略(Strategy)类:定义了一个公共接口,各种不同的算法以不同的方式实现这个接口,环境角色使用这个接口调用不同的算法,一般使用接口或抽象类实现。 具体策略(Concrete Strategy)类:实现了抽象策略定义的接口,提供具体的算法实现。 环境(Context)类:持有一个策略类的引用,最终给客户端调用。 意图 定义一系列原创 2020-06-12 14:20:08 · 1999 阅读 · 0 评论 -
面向对象7大设计原则
第1章 单一职责原则(SRP)单一职责原则的英文名称是SingleResponsibilityPrinciple,简称是SRP。单一职责原则的定义是:应该有且仅有一个原因引起类的变更。单一职责原则有什么好处:●类的复杂性降低,实现什么职责都有清晰明确的定义;●可读性提高,复杂性降低,那当然可读性提高了;●可维护性提高,可读性提高,那当然更容易维护了;●变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的实现类有影响,对其他的接口无...原创 2020-06-12 15:47:16 · 599 阅读 · 0 评论