摘要: 一、引言 在软件系统中,有时需要创建一个复杂对象,并且这个复杂对象由其各部分子对象通过一定的步骤组合而成。例如一个采购系统中,如果需要采购员去采购一批电脑时,在这个实际需求中,电脑就是一个复杂的对象,它是由CPU、主板、硬盘、显卡、机箱等组装而成的,如果此时让采购员一台一台电脑去组装的话真是要累死采 阅读全文
posted @ 2022-03-28 14:57 Heath Leger 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 模板方法是一个方法,定义了算法的步骤,并允许子类为一个或多个步骤提供实现。 本例中用冲泡咖啡和茶的例子来说明: 上图说明了冲泡咖啡和茶的步骤,可以看出冲泡咖啡和茶的步骤差不多,很相似,先来看看没有应用模板方法的代码: Tea的代码类似,就不放了。他们的一个不好的地方在于算法散落在了各个类中,还有一点 阅读全文
posted @ 2022-03-28 14:56 Heath Leger 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 工厂模式包含三种,简单工厂模式,工厂方法模式,抽象工厂模式。这三种都是解决了一个问题,那就是对象的创建问题。他们的职责就是将对象的创建和对象的使用分离开来。 当我们创建对象的时候,总是会new一个对象,有错么?技术上,new没有错,毕竟是C#的基础部分,真正的犯人是我们的老朋友“改变”。以及他是如何 阅读全文
posted @ 2022-03-28 14:55 Heath Leger 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 前面分析了简单工厂模式和工厂方法模式,接着来看一下抽象工厂模式,他与工厂方法模式有一些相似的地方,也有不同的地方。 先来看一个不用工厂方法模式实现的订购披萨的代码: 对象依赖的问题:当你直接实例化一个对象时,就是在依赖他的具体类。接着上面的例子,如果在一个PizzaStore里面直接创建很多对象时, 阅读全文
posted @ 2022-03-28 14:55 Heath Leger 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 在程序的设计过程中很多时候系统会要求对于某个类型在一个应用程序域中只出现一次,或者是因为性能的考虑,或者是由于逻辑的要求,总之是有这样的需求的存在,那在设计模式中正好有这么一种模式可以来满足这样的要求。 在C#中实现单例模式可以通过定义私有的构造函数来实现,当然,还可以通过定义静态的构造函数来实现。 阅读全文
posted @ 2022-03-28 14:54 Heath Leger 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 简单概述一下23种设计模式 对于设计模式,在代码量多了之后,自然而然就会体会到设计模式的好处。 1. 单例模式 确保某一个类只有一个实例,并且自行实例化并向整个系统提供这个实例。 优点:减少系统开销,避免对资源多重利用。 缺点:没有接口,不利于扩展。 2. 工厂方法模式 定义一个用于创建对象的接口, 阅读全文
posted @ 2022-03-28 14:26 Heath Leger 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 使用Qt开发界面时,经常会在控件中嵌套控件。如在QStackWidget中加入多个QWidget,在QTabWidget中加入多个QWidget(tab)。但是新加入的控件,默认是没有布局属性的。QtCreator中,控件图标左下角有个禁止的红色标识。 怎么样给QWidget增加布局Layout属性 阅读全文
posted @ 2022-03-18 10:36 Heath Leger 阅读(2066) 评论(0) 推荐(0) 编辑
摘要: pri的使用 github上的一个项目EasyQPainter 想模仿它的项目结构 其中圈起来的文件夹就是使用pri将文件进行了分类,每个这样的子文件夹下都有一个同名的*.pri文件。 运行环境 Qt Creater 5.12 1. 什么是pri 参考Qt中 .pro 文件和 .pri 文件介绍 个 阅读全文
posted @ 2022-03-17 15:28 Heath Leger 阅读(3200) 评论(0) 推荐(0) 编辑
摘要: Qt5安装 参考: blog.csdn.net c.biancheng.net 官网 1. 下载 从c.biancheng.net可知qt6没有完整的离线安装包, 需要自行编译。在官网offline-installers上 看到5.12x就下载了它。 安装过程中需要账号(这里使用OpenSource 阅读全文
posted @ 2022-03-15 17:17 Heath Leger 阅读(340) 评论(0) 推荐(0) 编辑
摘要: FlowDocumentScrollViewer FlowDocument容器 FlowDocument 文档展示, 之所以用它是因为它会自动换行。 增加一行并滚动到最下面一行(Code Behind) 在template中找到Scrollviewer, 然后调用它的Scroll。。。方法。 Par 阅读全文
posted @ 2020-09-17 13:40 Heath Leger 阅读(211) 评论(0) 推荐(0) 编辑