互联网挖掘者
简述 享元模式(Flyweight Pattern)运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。
简述 桥接模式(Bridge Pattern)是将抽象部分与它的实现部分分离,使它们都可以独立地变化。 简述 模式结构 优缺点 适用场景 案例分析 代码实现 版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/liang19890820 模式结构 UML 结构图: Abstraction(抽象类):用于定义抽象类的接口,并且维护一个指向 Implementor 实现类的指针。
简述 模版方法模式(Template Method Pattern)定义一个操作中算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
简述 访问者模式(Visitor Pattern)表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。
简述 策略模式(Strategy Pattern)定义一系列算法,把它们一个个封装起来,并且使它们可以互相替换。Strategy 可以使算法独立于使用算法的客户端。
简述 备忘录模式(Memento Pattern)在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。
简述 中介者模式(Mediator Pattern)用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
简述 职责链模式(Chain of Responsibility Pattern)使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。
简述 状态模式(State Pattern)是行为设计模式之一。当对象根据其内部状态改变其行为时,将使用状态设计模式。 简述 模式结构 优缺点 适用场景 案例分析 代码实现 版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/liang19890820 模式结构 UML 结构图: Context(上下文):定义一个与 Client 交互的接口。
简述 代理模式(Proxy Pattern)为其他对象提供了一种代理,以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
简述 Qt 本身提供了插件相关的技术,但并没有提供一个通用的插件框架!倘若要开发一个较大的 GUI 应用程序,并希望使其可扩展,那么拥有这样一个插件框架无疑会带来很大的好处。
简述 接口的作用,就是提供一个与其他系统交互的方法。其他系统无需(也无法)了解内部的具体细节,只能通过对外提供的接口来与进行通信。
简述 不仅 Qt 本身可以通过插件进行扩展,而且 Qt 应用程序也可以通过插件来扩展,这需要应用程序使用 QPluginLoader 检测和加载插件。
简述 Qt 提供了两套用于创建插件的 API: High-Level API:用于扩展 Qt 本身(例如:自定义数据库驱动、图像格式、文本编解码、自定义样式等) Low-Level API:用于扩展 Qt 应用程序 例如,如果要编写自定义的 QStyle 子类,并且动态地加载 Qt 应用程序,则可以使用更高级别的 API。
定义插件的宏 在头文件 中,包含了几个用于定义插件的宏: Q_DECLARE_INTERFACE(ClassName, Identifier) Q_IMPORT_PLUGIN(PluginName) Q_PLUGIN_METADATA(.
简述 摘自维基百科: 静态链接库(Statically-linked library),或称静态库,是一个外部函数与变量的集合体。
简述 在 Windows 上,共享库由 .dll 表示;在 Linux 上,由 .so 表示。一个共享库中的符号被设计为导出的,以便客户端可以从中导入符号。
简述 在 Windows 中,有动态链接库(DLL - Dynamic Link Library);在 Linux 中,有共享库(Shared Library),它们是相同的! 由于平台和编译器的差异,输出的库文件也不同: 在 Windows 中,MinGW 将输出 .a 和 .dll;MSVC 将输出 .lib 和 .dll。
简述 在使用 Qt Widgets 时,经常要实现一些比较炫酷的效果(例如:滑动、翻页),这时选择 QML 会显得非常简单。
简述 前面提到过 QPainterPath(绘图路径),除了创建和重用图形形状以外,还可以进行一些高级操作,例如:填充、描绘轮廓、裁剪。 轮廓,是指边缘 - 物体的外周或图形的外框 要为一个指定的绘图路径生成可填充的轮廓,离不开 QPainterPathStroker。 简述 QPainterPathStroker 绘制轮廓 深入理解 版权所有:
简述 组合模式(Composite Pattern)组合多个对象形成树形结构以表示具有“整体-部分”关系的层次结构。组合模式对单个对象(即:叶子构件)和组合对象(即:容器构件)的使用具有一致性,组合模式又被称为“整体-部分”(Part-Whole)模式,属于对象结构型模式。 简述 模式结构 透明组合模式和安全组合模式 优缺点 使用场景 案例分析 代码实现 透明组
简述 外观模式(Facade Pattern)又称为门面模式,属于结构型模式。Façade 为子系统中的一组接口提供了一个统一的高层接口,该接口使得子系统更加容易使用。 简述 模式结构 优缺点 适用场景 案例分析 代码实现 版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/liang19890820 模式结构 UM
简述 抽象工厂模式(Abstract Factory Pattern)是所有形态的工厂模式中最为抽象和最具一般性的一种形态。
简述 抽象工厂模式(Abstract Factory Pattern)是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。 简述 模式结构 优缺点 适用场景 案例分析 代码实现 版权所有:一去丶
简述 工厂方法模式(Factory Method Pattern)是一种常用的对象创建型设计模式,此模式的核心思想是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用以及方便后期维护拓展的目的。 简述 模式结构 优缺点 适用场景 案例分析 代码实现 版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.
简述 简单工厂模式(Simple Factory Pattern)又叫做静态工厂方法模式(Static Factory Method Pattern),属于创建型模式。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类的实例。 值得注意的是,简单工厂模式并不属于 23 种 GoF 设计模式之一。它是工厂模式家族中最简单实用的模式,可以理解为是不同
简述 设计模式(Design pattern)代表了最佳的实践,在面向对象的编程中被很多老鸟们反复使用。使用设计模式是有很多好处,例如: 可重用代码 使代码更易被他人理解 保证代码可靠性 …… 毫无疑问,设计模式于己于人于系统都是多赢的。《设计模式》之于程序员,就好比《圣经》之于耶稣信徒一样,意义可想而知! 简述 什么是 GoF 设计模式的类型 创建型模
简述 装饰者模式(Decorator Pattern)是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 简述 模式结构 优缺点 适用场景 案例分析 代码实现 版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/liang19890820 模式结构
简述 适配器模式(Adapter Pattern)是一种补救模式,将一个类的接口转换成客户希望的另外一个接口,从而使原本由于接口不兼容而不能一起工作的类可以一起工作。 简述 模式结构 类适配器和对象适配器 优缺点 适用场景 案例分析 代码实现 对象适配器 类适配器 版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/l
简述 原型模式(Prototype Pattern)是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,而无需知道任何创建的细节。 简述 模式结构 优缺点 适用场景 案例分析 代码实现 版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/liang19890820 模式结构 UML 结构图: 抽象
简述 建造者模式(Builder Pattern),旨在将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 简述 模式结构 优缺点 适用场景 案例分析 代码实现 版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/liang19890820 模式结构 UML 结构图: 抽象建造者(B
简述 QML 可以很容易地通过 C++ 代码中定义的功能进行扩展。由于 QML 引擎与 Qt 元对象系统的紧密集成,QObject 派生类适当暴露的任何功能都可以从 QML 代码访问,这使得 C++ 中的数据和函数可以直接从 QML 中访问,通常不需要太多修改,甚至不用修改。 通过元对象系统,QML 引擎具有内省 QObject 实例的能力。这意味着,任何 QML 代码都
简述 所有的 QML 对象类型 - 无论由引擎内部实现还是由第三方源定义,都是 QObject 派生的类型。这意味着,QML 引擎可以使用 Qt 元对象系统动态实例化任何 QML 对象类型并检查创建的对象。 这对于在 C++ 中创建 QML 对象非常有用,无论是显示一个可视化呈现的 QML 对象,还是将非可视 QML 对象数据集成到 C++ 应用程序中。一旦 QML 对象
简述 当加载一个 QML 对象到一个 C++ 应用程序中时,直接嵌入可以从 QML 代码中使用的一些 C++ 数据是非常有用的。例如,对嵌入的对象调用一个 C++ 函数,或者使用一个 C++ 对象实例作为 QML 视图的数据模型。 通过 QQmlContext 类可以将 C++ 数据注入到 QML 对象中。该类将数据暴露给一个 QML 对象的上下文,以便可以直接从 QML
简述 命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传递给调用对象。调用对象寻找可以处理该命令的合适对象,并把该命令传给相应的对象,该对象执行命令。 简述 背景 模式结构 代码实现 简易计算器 命令队列 兴趣点 版权所有:一去丶二三里,转载请注明出处:http://blog.c
简述 观察者模式(Observer Pattern),定义了对象间的一对多的依赖关系,让多个观察者对象同时监听某一个主题对象(被观察者)。当主题对象的状态发生更改时,会通知所有观察者,让它们能够自动更新。 简述 背景 模式结构 优缺点 适用场景 案例分析 代码实现 版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/lian
简述 为了风格统一、代码规范,QML 提供了一套编码约定,在 QML 的参考文档和示例中均遵循此规则,建议大家以后编写 QML 时也同样遵循。 简述 QML 对象声明 分组属性 列表 JavaScript 代码 版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/liang19890820 QML 对象声明 在整个文档和
简述 信号和槽作为 Qt 的核心机制,在 Qt 编程中有着广泛的应用。同样,QML 也继承了这样的特性 - 信号和信号处理程序 ,只不过叫法上略有不同。 信号:来自 QML 对象的通知。 信号处理程序:由信号触发的表达式(或函数),也被称为 Qt C++ 中的“槽”。 信号是事件,信号通过信号处理程序来响应。当一个信号被发射时,相应的信号处理程序就会被调用,在处理程序
简述 可以为 QML 对象中的属性分配两种类型的值 - 静态值和绑定表达式,后者也称为属性绑定。 静态值:一个不依赖于其他属性的常数值。 绑定表达式:一个用于描述属性间依赖关系的 JavaScript 表达式。 属性绑定是 QML 的一个核心特性,允许指定不同对象属性之间的依赖关系。当属性的依赖项(属性绑定中的变量)的值发生改变时,属性将根据指定的关系自动更新。
简述 Qt 资源系统允许将资源文件作为二进制文件存储在可执行文件中,这在构建混合的 QML/C++ 应用程序时非常有用,因为它通过资源系统的 URI 方案引用 QML 文件(以及其他资源,例如:图片和声音文件),而不是文件系统资源的相对路径或绝对路径。 简述 使用资源系统 实际应用 版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.n
简述 QML 文档由 QML 运行环境加载和执行。这包括 Declarative UI 引擎以及内置的 QML 类型和插件模块,并且它还提供了对第三方 QML 类型和模块的访问。 使用 QML 的应用程序,需要调用 QML 运行环境才能执行 QML 文档。这可以通过创建 QQuickView 或 QQmlEngine 来完成。此外,Declarative UI 包包含了
简述 注释的原则是有助于对程序的阅读理解,不宜太多,也不能太少(一般情况下,源代码有效注释量必须在 20% 以上),注释必须准确、易懂、简洁。 说明性文件(例如:.h 文件、.inc 文件、.def 文件等)头部应进行注释,注释一般需要列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。 怎么在 Q
简述 Qt Charts API 构建在 Qt Graphics View 框架之上,可以使用 QChart 类将图表显示为 QGraphicsWidget。但还有一个方便的类 - QChartView,可以作为一个独立的窗口,可以更方便的构建图表,不需要与 QGraphicsScene 一起使用。 所有的图表类型均由 QAbstractSeries 派生类表示。要创建图
简述 我觉得一个好看的 UI 可以潜意识地激励我们,不仅可以让我们工作的更高效、更有乐趣,而且可以让应用程序变得更漂亮、更直观。 我比较喜欢风格一致的产品,让所有的东西看起来像是一个大家庭,给人一种专业的视觉享受。当做出很专业的产品时,你甚至可以很自豪地称自己为一个艺术家。 简述 故事情节 QSS 样式 更多参考 版权所有:一去丶二三里,转载请注明出处
简述 Qt Creator 对于 QSS 的支持的不是很好,没有语法提示、智能纠错、实时预览等功能,这在一定程度上明显降低了开发效率。。。 下面,介绍几款 QSS 编辑工具,用于辅助基本开发。 简述 QSS Editor Rizek Qss Editor Kineticwing IDE 版权所有:一去丶二三里,转载请注明出处:http://blog.c
简述 如果要开发一个 Qt 应用程序(C++ 或 QML),包含绘图和数据可视化,需要插入一些图表,例如:饼图、条形图或更复杂的,有什么可选的图表库呢?一起来看看。 简述 Qt Charts KD Chart QWT QCustomPlot QtiPlot 更多参考 版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/lia
简述 QML 是一种多范式语言,使对象能够根据其属性以及如何关联和响应其他对象的更改来定义对象。与纯粹的命令式代码相反,属性和行为的变化通过一系列逐步处理的语句表达。QML 的声明性语法将属性和行为更改直接集成到单个对象的定义中,这些属性定义可以包含必要的代码,在情况复杂的自定义应用程序行为是必要的。 QML 源代码通常由引擎通过 QML 文档加载,QML 文档是 QML
简述 在调试程序的时候,有时需要调试进入 Qt 源码,这不仅有利于我们了解内部实现机制,而且对于解决一些隐蔽性问题很有帮助。 都知道 F11 是“单步进入”,可是在调试的过程中,按下 F11 却无法进入。有人说需要静态编译 Qt 才可以,其实不然,只需要简单的几个配置就可以搞定。 简述 Qt 版本及安装 配置 Qt Creator 源码调试 更多参考
简述 要开发 QML 程序,首先要选择一款合适的工具。Qt Creator 作为 Qt 开发的首选工具,当然,也可用于 Qt Quick。 在使用 Qt Creator 创建 Qt Quick 项目时有很多模版及类别,下面进行一一讲解! 简述 创建 Qt Quick 项目 创建 Qt Quick 应用程序 创建 Qt Quick UI 项目 版权所有:一去