- 博客(15)
- 资源 (2)
- 收藏
- 关注
原创 第6节 装饰者模式(单一职责)
一、单一职责模式概述在软件设计中,如果职责划分不清晰,使用继承得到的结果往往随着需求的变化子类急剧膨胀,同时充斥着冗余的代码;单一职责模式典型:装饰者模式、桥模式二、装饰者模式动机在某些情况下,我们可能会过度使用继承来扩展对象的功能,由于继承为类型的静态特性,使得这种扩展缺乏灵活性;此外,随着子类的增多,各种子类的组合会导致更多子类的膨胀;如何使得对象功能的扩展能够根据需要来动态...
2020-03-11 15:23:45
218
原创 第5节 观察者模式
一、模式动机在软件构建中,我们需要为某些对象构建一种"通知依赖"关系,一个对象(目标对象)状态改变时,所有依赖对象(观察者)都将得到通知;使用OOP(面向对象编程)技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系,从而实现软件体系接口的松耦合;二、程序示例2.1 使用设计模式前这里,我们设计一个文件分割的例子,虽然现在用的不多,因为现在的存储介质容量都相对很大,但是作为一个例子...
2020-03-11 15:16:45
196
原创 第4节 策略模式
一、 策略模式动机软件构建中,某些对象算法可能多种多样,经常改变,如果将它们都编码到对象中,会使得对象非常复杂,有时支持不适用的算法也会造成性能负担;如何在运行时透明地更改对象的算法,将算法与对象本身解耦,从而避免上述问题?二、策略模式定义( GOF定义)定义一系列算法,把他们一个个封装起来,并且使他们可互相替换(变化)。该模式使得算法可独立于使用他们的客户程序(稳定)而变化.三、代...
2020-03-11 15:11:28
243
原创 第3节 模板方法模式
一、模式分类1. 从目的来看1.1 创建型模式:指创建对象的模式,抽象勒实例化的过程,帮助系统独立于如何创建爱你、组合和表示;1.2 结构型模式:为解决怎样组装现有类,设计他们的交互方式,而达到一定的功能;1.3 行为型模式:在不同对象之间划分责任和算法的抽象化,重点关注它们是如何相互租用;三者的关系1) 创建模式为其它两种模式的使用提供环境,好比Visual Studio软件提供了...
2020-03-11 14:13:23
149
原创 第2节 面向对象设计原则
一、面向对象设计变化是复用的天敌,OOP设计的最大优势在于抵御变化!二、重新认识面向对象理解隔离化:宏观来讲,OOP方式能够将变化所带来的影响减为最小;各司其职:微观上看,OOP更强调各个类的职责,由于需求的变化导致新增类型不改变原来的实现对象是什么:语言层面:封装了代码和数据规格层面:对象是一系列可被使用的公共接口概念层面:对象是拥有某些责任或功能的抽象三、面向对象设计...
2020-03-11 14:00:58
122
原创 第1节 设计模式简介
#include <stdio.h>一、课程目标理解松耦合的程序设计思想;掌握面向对象的设计原则;掌握重构技巧改善代码设计;掌握GOF核心设计模式参考教材《设计模式-可复用面向对象软件的基础》二、从面向对象谈起底层思维:语言构造、编译转换、内存管理、运行时机制抽象思维:面向对象(OOP)、组件封装、设计模式、架构模式三、深入理解面向对象向下:深入理解面...
2020-03-11 11:39:00
120
转载 BaiduPCS-Go 下载文件出现 403 Forbidden 的解决方法
BaiduPCS-Go 是一款由 iikira 大佬使用 Go 语言编写的第三方百度网盘客户端,点此直达项目地址。BaiduPCS-Go 支持 Windows、macOS、linux、移动设备等平台,支持多个文件或目录下载, 支持断点续传和单文件并行下载,功能强大,下载速度快。博主在 Linux 上一直使用该软件来实现本地文件同百度云的下载与同步,但在使用的过程中遇到一个问题,就是大文件下载或多文...
2019-07-18 10:23:44
5931
1
原创 基于CUDA和OpenCV的投影仪梯形校正实现
1. 投影仪梯形校正介绍 我们在经常使用投影仪时,由于投影仪高度与投影高度不匹配,经常会出现投影仪灯泡网上扬起或者侧着的情形,这种时候投影在幕布或墙上的画面或呈现梯形的形状,对于我们观看投影带来不好的用户体验。现在的大多数厂商都对此加入了数据梯形校正功能,关于梯形校正,您可以参考如下资料:百度百科:梯形校正论文: 《基于图像空间变...
2019-03-18 22:09:23
3880
1
原创 OpenMP基础知识详解及代码示例,学习OpenMP看这里就够了!
1. OpenMP基本介绍 OpenMP是一个编译器指令和库函数的集合,主要是为共享式存储计算机上的并行程序设计使用的。目前支持OpenMP的语言主要有Fortran,C/C++。1.1 fork/join并行执行模式的概念 OpenMP在并行执行程序时,采用的是fork/joi...
2019-03-18 21:50:23
11275
2
原创 热对流方程加速的OpenMP实现
1. 热对流问题的Matlab实现 热对流问题不是本文的重点,对这个问题不了解的话可以参考别的学习资料。OpenMP的基础知识可以参考网上很多资料,也可以参考本博主另外的一片博客《OpenMP基础知识详解及代码示例》。ly = 51;aspect_ratio = 2;lx = aspect_ra...
2019-03-18 18:54:09
973
原创 OAuth介绍及实现(上)
1. OAuth 2.0的原理介绍2. 使用Python编写OAuth的基本功能3. 使用Flask实现简单的OAuth服务器
2019-02-20 14:31:37
468
原创 使用bat批处理文件快速启动SAS软件
女友是北京协和医院的,由于对操作系统和编程知识了解不多,在使用SAS软件时,不想购买正版软件,每次启动都需要手动修改操作系统的系统时间,然后启动SAS软件,再手动恢复系统时间。这是一个重复且繁杂的过程,于是简单帮助它写了一个bat批处理脚本,希望能帮助到有需要的盆友。使用之前请更改相关的SAS软件安装目录配置!@echo offecho.echo.mode con cols=120 lin...
2019-02-14 16:38:44
1691
原创 wxPython FlexGridSizer实现文件目录浏览
import wxclass MainPanel(wx.Panel): def __init__(self,parent): wx.Panel.__init__(self,parent,-1) txt1=wx.StaticText(self,-1,"Style 0") dir1=wx.GenericDirCtrl(self,-1,size...
2019-01-17 23:11:34
1043
原创 区块链知识100问
1. 比特币及区块链的发展历史2009年,中本聪打包了第一个区块,并获得了50枚比特币的挖矿奖励;挖矿奖励每4年减半一次,按此计算预计2140年发行完毕,总数量为2100万枚;德国为首个接收比特币支付的国家,微软、戴尔等知名企业也纷纷接收比特币支付;北京时间2009年1月4日,距离白皮书发布已经过去3个月了,中本聪在位于芬兰赫尔辛基的一个小型服务器上创建了第一个区块,即比特币创世区块,并...
2019-01-17 21:44:16
9822
原创 一次弄清楚所有Python 3 关于import不同路径问题
一、目录结构--ABCD.py --packageA - __init__ - AA.py - AB.py--packageB - __init__.py - BA.py - BB.py--pathC - CA.py - CB.py--pathD - DA.py - DB.py二、import情况1. ABCD....
2019-01-17 21:40:33
680
Windows x64 OpenCV GPU版本v3.20.zip
2019-06-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人