一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
上一页 1 ··· 39 40 41 42 43 44 45 46 47 ··· 156 下一页
摘要: 设计模式之迭代器模式 迭代器模式,提供一种方法顺序访问一个聚合对象中各个元素,而不暴露该对象的内部表示。该模式很好理解,C++中的迭代器应该都用过,和那个差不多。其UML图如下: ConcreteIterator内部有一个聚合对象的引用(指针),而ConcreteAggregate依赖于Concre 阅读全文
posted @ 2023-07-07 13:54 一杯清酒邀明月 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 设计模式之访问者模式 访问者模式,表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式适用于数据结构相对稳定的系统。它把数据结构和作用于结构上的操作之间耦合解脱开,使得操作几何可以相对自由地演化。访问者模式的目的使要把处理从数据结构中分 阅读全文
posted @ 2023-07-07 13:51 一杯清酒邀明月 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 设计模式之解释器模式 解释器模式,给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。解释器模式解决的问题是,如果一种特定类型的问题发生的频率足够高,那么可能就只得将该问题的各个示例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些 阅读全文
posted @ 2023-07-07 13:50 一杯清酒邀明月 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 设计模式之享元模式 享元模式,运用共享技术有效地支持大量细粒度的对象。面向对象技术可以很好地解决一些灵活性或扩展性问题,但在很多情况下需要在系统中增加类和对象的个数。当对象数量太多时,将导致运行代价过高,带来性能下降等问题。享元模式正式为了解决这依赖问题而诞生的。享元模式通过共享技术实现相同或相似对 阅读全文
posted @ 2023-07-07 13:48 一杯清酒邀明月 阅读(143) 评论(0) 推荐(1) 编辑
摘要: 设计模式之中介者模式 中介者模式,用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地互相引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。该模式很好理解,其UML图如下: Mediator中每个交互者的引用,在Mediator内部封装了各种类之间的交互。至于那个类和那个类交合则 阅读全文
posted @ 2023-07-07 13:46 一杯清酒邀明月 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 设计模式之责任链模式 责任链模式,使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象练成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。该模式很好理解,其UML图如下: 每个ConcreteHandler都有一定的请求处理能力,当自己处理不了的时候就把请求转 阅读全文
posted @ 2023-07-07 13:44 一杯清酒邀明月 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 设计模式之命令模式 命令模式,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。其UML类图如下: 该模式主要是为了隔离请求和实际执行者之间解除。就是解耦和,所有的请求统一有一个类负责,而该类负责管理这些请求(添加请求、撤销请求之类的) 阅读全文
posted @ 2023-07-07 13:40 一杯清酒邀明月 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 设计模式之桥接模式 桥接模式,将抽象部分与它的实现部分分离,使它们都可以独立地变化。这里说的实现分离,并不是说然抽象类与派生类分离,这没有任何意义。实现指的是抽象类和它的派生类用来实现自己的对象。其UML图如下: 结合上图理解一下其定义。抽象部分指的是Abstraction或者RefinedAbst 阅读全文
posted @ 2023-07-07 13:37 一杯清酒邀明月 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 设计模式之单例模式 保证一个类仅有一个实例,并提供一个访问他的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且可以提供一个访问该实例的接口。其UML图如下: 其示例代码 阅读全文
posted @ 2023-07-07 13:34 一杯清酒邀明月 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 设计模式之组合模式 组合模式,将对象组合成属性结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。其UML图如下: 一个组织有很多子组织,而无论子组织是单独一个部门或是一个分组织。该组织都希望把它们当成一样的子组织来管理。举个例子吧,就拿公司来说吧,一个公司总部 阅读全文
posted @ 2023-07-07 13:31 一杯清酒邀明月 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 设计模式之简单工厂模式(C++) 简单工厂模式,主要用于创建对象。新添加类时,不会影响以前的系统代码。核心思想是用一个工厂来根据输入的条件产生不同的类,然后根据不同类的virtual函数得到不同的结果。优点:适用于不同情况创建不同的类时。缺点:客户端必须要知道基类和工厂类,耦合性差。需要根据不同的需 阅读全文
posted @ 2023-07-07 13:28 一杯清酒邀明月 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 1. Duplicated Code重复代码,在程序中多次出现的相同结构或功能的代码 同一个类中的两个函数含有相同的表达式 两个互为兄弟的子类中含相同的表达式 相互独立的类中出现相同表达式 2. Long Method 过长的函数难以理解及维护 段函数或间接层具有很强的解释能力、共享能力和选择能力 阅读全文
posted @ 2023-07-07 11:56 一杯清酒邀明月 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 2018年,Martin Fowler的《重构》第二版出版,距离第一版,已经19年了。为什么作者要出新版?通过分析两个版本的变化,可以探知端倪。这些变化,一方面体现了作者多年的思考和总结,另一方面也体现了技术潮流的演进。本文先从讨论坏味道的变迁开始。 《重构》第一版中有22种坏味道,第二版中有24种 阅读全文
posted @ 2023-07-07 11:52 一杯清酒邀明月 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 代码坏味道:是指在代码之中潜在问题的警示信号。并非所有的坏味道所指示的确实是问题,但是对于大多数坏味道,均很有必要加以查看,并作出相应的修改。 1. 重复的代码 如果你在一个以上的地点看到相同的程序结构,那么当可肯定:设法将它们合而为一,程序会变得更好。 同一个class内的两个函数中含有重复的代码 阅读全文
posted @ 2023-07-07 11:48 一杯清酒邀明月 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 代码重构的常用方法 (C++实现) 重构是在软件开发中改善已有代码的一种方法,通过代码重构可以改进软件的设计、使得软件更容易理解、有利于Bug的发现以及提高后续开发效率。Martin Fowler在《重构:改善既有代码的设计》一书中对“重构”提供了两种形式的定义: 重构(名词):对软件内部结构的一种 阅读全文
posted @ 2023-07-07 11:17 一杯清酒邀明月 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 一 前言 有一天,一个医生和一个土木工程师在一起争论“谁是世界上最古老的职业”。医生说:“上帝用亚当的肋骨造出了夏娃,这是历史上第一次外科手术,所以最古老的职业应该是医生”,土木工程师说:“在创世纪之前,上帝从混沌中创造了天堂与人间,这是更早之前的一次土木作业,所以最古老的职业应该是土木工程”。这时 阅读全文
posted @ 2023-07-06 15:40 一杯清酒邀明月 阅读(78) 评论(0) 推荐(0) 编辑
摘要: Qt插件框架是一种机制,可以让用户在应用程序运行时通过插拔的方式扩展其功能,并且不需要重新编译整个应用程序。它是一个强大的工具,可用于实现许多不同类型的应用程序和库。 模块化设计 - 通过将应用程序分为几个模块,您可以更轻松地管理和更新您的Qt插件。同时,模块化也有利于代码复用和维护性。 核心统一管 阅读全文
posted @ 2023-07-06 15:06 一杯清酒邀明月 阅读(341) 评论(0) 推荐(0) 编辑
摘要: Qt是一个跨平台的C++图形用户界面应用程序开发框架。它具有丰富的功能和灵活的分层架构,可帮助开发人员高效地构建可扩展的软件应用程序。以下是Qt分层架构的使用和优化的建议: 了解Qt的核心模块:Qt核心模块包括Qt核心、GUI、多媒体、网络和SQL等模块。开发人员应该深入了解每个模块的功能和API, 阅读全文
posted @ 2023-07-06 15:06 一杯清酒邀明月 阅读(334) 评论(0) 推荐(0) 编辑
摘要: Qt信号和槽机制是Qt框架中非常重要的一部分,它可以帮助我们轻松地实现对象之间的通讯和交互。以下是一些使用和优化Qt信号和槽机制的建议: 熟悉信号和槽机制的基本原理:我们需要了解信号和槽机制的基本概念和工作原理。每个Qt对象都有一个QMetaObject类,其中包含该对象的所有属性、方法和信号/槽的 阅读全文
posted @ 2023-07-06 15:05 一杯清酒邀明月 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 四种常见的关于Qt程序的架构设计方法: 1.使用MVC设计模式MVC是Model-View-Controller的缩写,是应用程序开发中常用的设计模式。在Qt中,可以使用QAbstractItemModel和QTreeView等类来实现MVC模式。 2. 使用信号和槽机制Qt中的信号和槽机制是一种灵 阅读全文
posted @ 2023-07-06 15:05 一杯清酒邀明月 阅读(581) 评论(0) 推荐(0) 编辑
上一页 1 ··· 39 40 41 42 43 44 45 46 47 ··· 156 下一页