07 2020 档案
摘要:1 概述 1.1 引言 很多情况下,一个软件系统中可以处理某个请求的对象不知一个,比如采购单的审批,主任,副董事长,董事长,董事会都可以处理采购单,他们可以构成一条处理采购单的链式结构,采购单沿着这条链进行传递,这条链就叫职责链。 职责链可以是一条直线,一个环或者一个树形结构,最常见的职责链是直线型
阅读全文
摘要:1 概述 1.1 引言 所谓代购,就是找人帮忙购买自己需要的商品,代购包括两种类型,一种是在当地买不到商品,或者因为当地该商品价格较高,因此托人在其他地区或者国外购买,另一种类型是消费者对想要购买的商品消息缺乏,只能委托中介或者中间商购买。 在软件开发中,有时也需要提供与代购类似的功能,由于某些原因
阅读全文
摘要:1 概述 1.1 引言 当一个系统中运行时的产生的对象太多,会带来性能下降等问题,比如一个文本字符串存在大量重复字符,如果每一个字符都用一个单独的对象表示,将会占用较多内存空间。 那么该如何避免出现大量相同或相似的对象,同时又不影响客户端以面向对象的方式操作呢? 享元模式正为解决这一问题而生,通过共
阅读全文
摘要:1 概述 1.1 引言 根据单一权责原则,软件中将一个系统划分为若干个子系统有利于降低整个系统的复杂性,使客户类与子系统之间的通信和相互依赖关系达到最小,方法之一就是引入一个外观角色,为子系统的访问提供一个简单而单一的入口。外观模式通过引入一个新的外观角色来降低原有系统的复杂度,同时降低客户类与子系
阅读全文
摘要:1 概述 1.1 引言 装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为。比如,一张照片,不改变照片本身,增加一个相框。 装饰模式是一种用于替代继承的技术,无须定义子类即可给对象动态增加职责,使用对象之间的关联关系来代替继承关系,在装饰模式中引入了装饰类,在装饰类中既可以调用待装饰
阅读全文
摘要:1 概述 1.1 引言 对于树形结构,比如文件目录,一个文件夹中可以包含多个文件夹和文件,而一个文件中不能在包含子文件或者子文件夹,在这里可以称文件夹为容器,称文件为叶子。 在树形结构中,当容器对象(比如文件夹)的某个方法被调用时,将遍历整个文件夹,寻找也包含这个方法的成员对象(容器对象或叶子对象)
阅读全文
摘要:1 概述 1.1 引言 桥接模式是一种很实用的结构型设计模式,如果软件系统中某个类存在两个独立变化的维度,通过该模式可以将这两个维度分离出来,使两者可以独立扩展,让系统变得更加符合SRP。 比如,设计一个跨平台的图像浏览系统,支持的图片格式包括: PNG BMP JPG GIF 等等,而支持的系统包
阅读全文
摘要:1 概述 1.1 引言 有的笔记本电脑工作电压为20V,而我国家庭用电为220V,如何让20V的笔记本在220V的电压下工作?答案就是引入一个电源适配器,有了这个电源适配器笔记本就能在220V的电压下工作。 在软件开发中,有时也会存在这类不兼容的状况,需要引入一个像电源适配器这样的称之为适配器的角色
阅读全文
摘要:1 表单绑定 可以利用v-model在表单控件元素上创建双向的数据绑定,v-model会根据控件类型自动选取正确的方法来更新元素。 2 文本框 文本框的绑定例子如下: <div id="app"> <p>input</p> <input v-model="message"> <p>{{message
阅读全文
摘要:1 监听 在Vue中可以通过watch来监听数据的变化,比如通过watch实现的简单计数器: <div id="app"> <p>计数器:{{count}}</p> <button @click="count++">点我增加</button> <p id="info"></p> </div> var
阅读全文
摘要:1 问题描述 环境Linux+fcitx,JetBrains的IDE无法输入中文,包括IDEA,PyCharm,WebStorm,CLion等等。 2 解决方案 Linux下一般使用fcitx进入中文输入,安装的时候教程一般都会提到以下三个环境变量: export XMODIFIERS="@im=f
阅读全文
摘要:1 概述 1.1 引言 建造者模式是较为复杂的创建型模式,它将客户端与包含多个组成部分(或部件)的复杂对象的创建过程分离,客户端无须知道复杂对象的内部组成部分与装配方式,只需要知道所需的建造者类型即可。建造者模式关注一步一步地创建一个复杂对象,不同的具体建造者定义了不同的创建过程,且具体建造者相互独
阅读全文
摘要:1 概述 1.1 引言 对于某些岗位来说,工作周报的内容会大同小异,如果用户每次都需要从空白的周报进行输入无疑会浪费用户很多的时间,如果周报能够按照用户的自定义来生成模板,或者从已有模板修改小部分得到新模板,这样用户的输入效率会大大提高。原型模式正是为解决这类问题而生。 1.2 定义 原型模式:使用
阅读全文
摘要:1 概述 1.1 引言 在了解抽象工厂模式之前,首先来了解一下两个术语: 产品等级结构 产品族 1.1.1 产品等级结构 产品等级结构也就是产品的继承结构,例如一个抽象类是电视机,子类有不同品牌的电视机,比如海尔电视机,海信电视机,TCL电视机,而抽象电视机与具体品牌的电视机之间构成了一个产品等级结
阅读全文
摘要:1 概述 1.1 引言 尽管简单工厂模式实现了对象的创建和使用分离,但是仍然存在以下两个问题: 工厂类过于庞大,包含了大量的判断代码,导致维护和测试难度增大 系统扩展不灵活,如果增加了新的产品类型,必须修改静态工厂方法的业务逻辑,违反了开闭原则 具体产品与工厂类之间的耦合度高,严重影响了系统的灵活性
阅读全文
摘要:1 概述 1.1 引言 简单工厂模式不属于GoF23种设计模式之一,但是实际中用途广泛,并且可以作为学习“工厂方法模式”以及“抽象工厂模式”的基础。在简单工厂模式中,工厂类提供一个创建产品的工厂方法,用于创建各种产品。客户端只需传入对应的参数,利用该方法即可根据传入参数的不同返回不同的具体产品对象。
阅读全文
摘要:1 条件判断 1.1 普通if 条件判断使用v-if指令: <div id="app"> <p v-if="seen">看到了</p>; </div> <script> new Vue({ el:'#app', data:{ seen:true } }) </script> v-if指令根据表达式的
阅读全文
摘要:1 概述 1.1 引言 很多时候为了节约系统资源,需要确保系统中某个类只有一个唯一的实例,当这个唯一实例创建了之后,无法再创建一个同类型的其他对象,所有的操作只能基于这一个唯一实例。这是单例模式的动机所在。 比如Windows的任务管理器,可以按Ctrl+Shift+Esc启动,而且启动一个,不能启
阅读全文
摘要:1 UML 1.1 UML UML(Unified Modeling Language)是统一建模语言,1997年11月UML1.1版本提交给OMG并正式通过,成为建模语言的个那个也标准。2003年6月UML2.0获得正式通过。 1.2 UML特性 U(Unified):统一,UML融合了多种优秀的
阅读全文
摘要:1 Vue目录结构 build:项目构建webpack的相关代码 config:配置目录,包括端口号等 node_modules:npm加载的项目依赖模块 src:开发的目录模块,包含assets(资源文件),components(组件文件),App.vue项目入口文件,main.js项目核心文件
阅读全文
摘要:
1 前言 软件开发技术包含“招式”与“内功”,其中,编程语言,开发技术,著名框架可以认为是“招式”,而数据结构,算法,设计模式,重构,软件工程等则为“内功”。“招式”可以很快学会,但是“内功”的修炼需要更长的时间。对设计模式的学习会令“内功”大增,配合日益纯熟的“招式”,软件开发“功力”想必会达到一
阅读全文
1 前言 软件开发技术包含“招式”与“内功”,其中,编程语言,开发技术,著名框架可以认为是“招式”,而数据结构,算法,设计模式,重构,软件工程等则为“内功”。“招式”可以很快学会,但是“内功”的修炼需要更长的时间。对设计模式的学习会令“内功”大增,配合日益纯熟的“招式”,软件开发“功力”想必会达到一
阅读全文
摘要:
1 概述 作者终于把Capslock+更新到了3.x版本了,所以就更了这篇博客。 2.x版本的可以戳这里。 3.x版本与2.x版本的主要不同是更新了新的键盘布局,更加顺手,下面让我们一起来看一下吧。 2 基础功能 下面的按键都以Capslock+开头,也就是说需要先按着Capslock键,而Alt键
阅读全文
1 概述 作者终于把Capslock+更新到了3.x版本了,所以就更了这篇博客。 2.x版本的可以戳这里。 3.x版本与2.x版本的主要不同是更新了新的键盘布局,更加顺手,下面让我们一起来看一下吧。 2 基础功能 下面的按键都以Capslock+开头,也就是说需要先按着Capslock键,而Alt键
阅读全文
摘要:1 修改命令 需要用到: find awk xargs 递归修改命令如下: find . -name '*.XXX' | awk -F "." '{print $2}' | xargs -i -t mv ./{}.XXX ./{}.XXXX 把XXX后缀修改为XXXX。 2 find find用来在
阅读全文

浙公网安备 33010602011771号