
Design pattern
软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。
Roger_CoderLife
项目开发的六个阶段:1.充满热情2.醒悟3.痛苦4.找出罪魁祸首5.惩罚无辜6.褒奖闲人
展开
-
[算法系列之三十二]1的数目
题目Given an integer n, count the total number of digit 1 appearing in all non-negative integers less than or equal to n.For example:Given n = 13,Return 6, because digit 1 occurred in the follow...转载 2019-12-25 09:19:09 · 237 阅读 · 0 评论 -
【设计模式学习笔记】多例模式
多例模式,即多个单例,并不是简单的new new new,算是个极端,不能完全否定吧。文章目录1.1 多例模型1.2 测试1.3 结果1.1 多例模型package multiton;import java.util.HashMap;import java.util.Map;/*****************************************...转载 2019-01-17 08:17:08 · 131 阅读 · 0 评论 -
【设计模式学习笔记】空对象模式
空对象模式:一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。【菜鸟】文章目录1.1 抽象对象及对应的继承类。1.2 工厂1.3 测试1.4 结果 当我们的系统中找不到某种车型的时候,直接返回对象肯定是个null。这时候如果你不做什么判断处理直接调用对象中的...转载 2019-01-18 08:07:10 · 121 阅读 · 0 评论 -
【设计模式学习笔记】观察者模式
观察者模式,提供了一种实时监听方案。定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。[菜鸟]文章目录1.1 被观察者1.2 观察者1.3 测试1.4 结果参考当我们的流水线,每生产一辆车,我们都要记录并检验这辆车。这里的记录员和质检员就是观察者。生产线则是被观察者。当被观察者变化时,就要通知其依赖的这些记录员...转载 2019-01-22 15:24:17 · 130 阅读 · 0 评论 -
【设计模式学习笔记】原型模式
原型模式,估计这是最简单的模式了。这个模式可以用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。额外说一句,这里的创建对象只是浅拷贝的。文章目录1.1 浅拷贝1.2 测试1.3 结果2.1 深拷贝2.2 测试深拷贝2.3 结果参考没什么好说的,直接看程序吧。要实现对象的浅拷贝,需要让待拷贝对象实现Clon...转载 2019-01-22 16:06:31 · 129 阅读 · 0 评论 -
【设计模式学习笔记】访问者模式
访问者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。[菜鸟]文章目录1.1 访问者接口1.2 实现一个访问者1.3 被访问的接口1.4 被访问接口的实现1.5 测试1.6 结果参考怎么说呢,访问者模式和观察者模式还是...转载 2019-01-23 08:23:49 · 657 阅读 · 0 评论 -
【设计模式学习笔记】模板模式
模板模式,定义一个模型,模型中的具体细节我们自己去设计。这和我们之后会提到的建造者模式有点相似。文章目录1.1 先来个模板1.2 根据模型设计个车1.3 测试1.4 结果参考 1.1 先来个模板package template;/************************************************ *@ClassName : ...转载 2019-01-23 09:58:54 · 163 阅读 · 1 评论 -
【设计模式学习笔记】状态模式
状态模式,这里的状态模式和EDA中的状态设计方法相似,但又是不同的。下面这句话是网上的解释:类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的context对象。【菜鸟教程】文章目录1.1 一个动作接口,方便以后增加更多的行为1.2 启动生产线是这样的1.3 测试1.4 结果参考 ...转载 2019-01-24 09:40:32 · 138 阅读 · 0 评论 -
【设计模式学习笔记】责任链模式
责任链模式,将请求和处理对象分离,将请求发送给一个请求处理入口后,谁具有请求的处理权限,谁就处理请求。文章目录1.1 请求入口Position1.2 继承Position1.3 最近聚餐,周知周知1.4 结果参考每年这个时候大概都是公司的聚餐季。但是我们的汽车厂,领导们饭后还有特别活动,比如讨论个“来年计划”啥的。我不清楚,我没当过领导。1.1 请求入口Posi...转载 2019-01-24 15:49:16 · 219 阅读 · 0 评论 -
【设计模式学习笔记】策略模式
In computer programming, the strategy pattern (also known as the policy pattern) is a behavioral software design pattern that enables selecting an algorithm at runtime. [wiki]文章目录1.1 接口1.2 实现类...转载 2019-01-25 08:28:36 · 204 阅读 · 0 评论 -
【设计模式学习笔记】代理模式
代理模式:本身不干活,干活的时候找别人去干。文章目录1.1 接口1.2 实现1.3 测试1.4 结果1.5 UML参考 1.1 接口package proxy;/************************************************ *@ClassName : CompanyWorkI *@Description : TO...转载 2019-01-26 09:07:45 · 199 阅读 · 0 评论 -
【设计模式学习笔记】单例模式
单例模式,只能获取一个实例。文章目录1.1 单例模式-懒汉模式1.2 单例模式-饿汉模式1.3测试1.4 结果参考 1.1 单例模式-懒汉模式package singleton;/************************************************ *@ClassName : single *@Description : 第...转载 2019-01-28 08:15:37 · 139 阅读 · 0 评论 -
单例模式(多线程不安全,序列化不安全,反射不安全实例)
<pre name="code" class="html">import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream...转载 2019-01-31 09:33:40 · 549 阅读 · 0 评论 -
【设计模式学习笔记】命令模式
命令模式主要解决行为请求者与行为执行者的强耦合而出现的一种行为模式。通常模式有三种角色,命令执行者,命令,命令入口。文章目录 1.1 命令的执行者 1.2 命令模块 1.3 命令入口 1.4 测试 1.5 结果 参考1.1 命令的执行者为了易于扩展,我...转载 2019-01-07 16:44:57 · 159 阅读 · 0 评论 -
【设计模式学习笔记】备忘录模式
备忘录模式:保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 文章目录1.1 首先改造我们的车1.2 备份1.3 备忘录1.4 恢复1.5 结果参考最近我们车厂决定要扩建一个维修厂,这个维修厂可以让让用户的车恢复到之前的任意状态。是不是很牛?!1.1 首先改造我们的车package memento;/**********...转载 2019-01-16 08:06:53 · 184 阅读 · 0 评论 -
【设计模式学习笔记】享元模式
享元模式:主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。【菜鸟】文章目录 1.1 宝马车长这样 1.2 工厂是这样涂装的 1.3 涂涂涂 1.4 结果 参考 这个模式也比较简单。比如...转载 2019-01-15 09:22:13 · 108 阅读 · 0 评论 -
【设计模式学习笔记】门面模式
门面模式,上级不用知道下级在干什么。下级按照流程处理,反馈给上级结果就好了。文章目录 1.1 流程方法接口 1.2 流程实现 1.3 调用流程中的步骤 1.4 测试 1.5 结果 参考1.1 流程方法接口package facade;/**...转载 2019-01-09 10:29:25 · 133 阅读 · 0 评论 -
单例设计模式之饿汉式和懒汉式
1.设计模式:设计模式是在大量的实践中总结和理论化之后优选的代码结构,编程风格,以及解决问题的思考方式。2.单例模式的概念:单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。①单例模式之饿汉式:1.饿汉式单例类package pattern.singleton;//饿汉式单例类....原创 2018-09-19 16:37:55 · 216 阅读 · 0 评论 -
【设计模式学习笔记】过滤器模式
过滤器模式:这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。【菜鸟】其实就是按条件筛选一组对象出来。文章目录 1.1 定义车 1.2 过滤器 1.3 测试 1.4 结果 参考 我们车厂现在车型很多,现在只想筛选出来bwm的数量。1.1 定义车p...转载 2018-12-21 08:42:35 · 155 阅读 · 0 评论 -
【设计模式学习笔记】桥梁模式
文章目录 1.1 我们的厂房长这样 1.2 CarA长这样 1.3 CarA下扩展个产品吧,这个很easy 1.4 实实在在的车房 1.5 测试 1.6 结果 1.7 uml 参考桥梁模式提供了一种弱类间关系,关联关系。在设计模式之禅...转载 2019-01-03 22:22:13 · 142 阅读 · 0 评论 -
【设计模式学习笔记】抽象工厂模式
1. 抽象工厂模式抽象工厂提供了一系列相关或相互依赖对象的接口,而无须指定他们具体的类。 文章目录1. 抽象工厂模式 1.1 创建车与人的接口,及其实现 1.2 创建获取不同种类实例的抽象类 1.3 实现上面的抽象类 1.4 测试2. 参考我们有两个不同类的东西,一个是车,一个是人;车分宝马车、奔驰车,人分男人、女人。我们想要通过一...转载 2019-01-04 09:43:58 · 215 阅读 · 0 评论 -
【设计模式学习笔记】简单工厂模式
简单工厂模式又称为静态工厂模式,提供一个公有的静态工厂方法,返回一个类的实例。通过工厂我们不必具体去实例化某一个实例对象。只需要传递某些约定的参数,工厂会自动找到该类并将其实例化。文章目录 简单工厂模式 1. 创建一个接口,接口中定义公用方法。 2. 创建接口对应的实现 3. 创建工厂类...转载 2019-01-10 14:35:47 · 137 阅读 · 0 评论 -
【设计模式学习笔记】适配器模式
适配器模式,你有我需要的信息但是我俩信息封装的类型不同,你无法直接给我。就像我又一个三脚插头,你是两孔的插座。需要一个转换器,让我用上你的电。P.S.:很危险,不要干这种事。。。文章目录 1.1 不同的客户信息封装 1.2 我能怎么办,当然转换了~ 1.3 测试 1.4 结果 1....转载 2019-01-05 12:26:14 · 135 阅读 · 0 评论 -
【设计模式学习笔记】工厂方法模式
工厂方法模式又称为工厂模式(哈?!(´⊙ω⊙`)),也叫虚拟构造器(Virtual Constructor)模式或者多态工厂模式(Polymorphic Factory),在工厂方法模式中,父类负责定义创建对象的公共接口,而子类则负责生成具体的对象,这样做的目的是将类的实例化操作延迟到子类中完成,即由子类来决定究竟应该实例化(创建)哪一个类。 文章目录 1.1 定义...转载 2019-01-11 08:52:20 · 149 阅读 · 0 评论 -
【设计模式学习笔记】观察者模式
观察者模式,提供了一种实时监听方案。定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。[菜鸟] 文章目录1.1 被观察者 1.2 观察者 1.3 测试 1.4 结果 参考当我们的流水线,每生产一辆车,我们都要记录并检验这辆车。这里的记录员和质检员就是观察者。生产线则是被观察者。当被观察者变化时,就要通知其依赖的这些记录...转载 2019-01-02 11:05:46 · 114 阅读 · 0 评论 -
【设计模式学习笔记】中介者模式
中介者模式:用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。【菜鸟】文章目录 1.1 交谈动作及对象 1.2 中介者长这模样 1.3 测试 1.4 结果 ...转载 2019-01-13 17:57:43 · 130 阅读 · 0 评论 -
【设计模式学习笔记】迭代器模式
迭代器模式,这是一个很好玩的模式。其实迭代器已经存于集合中了。但是呢,我们可以动手写一个迭代器,并且将其运用在迭代器模式中,而不是在list中。文章目录 1.1 定义一个迭代器接口及实现 1.2 我们统计生产的车是这样的 1.3 开始记录了 1.4 结果 参考我们的车间每天都在...转载 2019-01-13 18:16:37 · 212 阅读 · 0 评论 -
【设计模式学习笔记】组合模式
组合模式,适用于树状结构。模式有三个角色:组合部件,合成模块,叶子。组合部件是组合其余两者的父类。它是一个提供公共属性,方法的抽象类。合成模块用于合成最终的组合对象,叶子节点是组合部件的底层,也就相当于树枝与树叶。该模式又为安全模式和透明模式。两者却别在于父类是否提供用于合成组件的所有方法。文章目录 1 透明模式: 1.2 抽象组合部件 1.3...转载 2019-01-08 11:55:17 · 140 阅读 · 0 评论 -
【设计模式学习笔记】装饰器模式
装饰器模式,顾名思义就是装。人靠衣装,马靠鞍。天生一副臭皮囊,穿金戴银之后,就显得与众不同于。装饰器模式在不改变原来类结构的基础上,对原来的类进行了扩展。并且这是一种弱耦合形式。文章目录 1.1 天生一副臭皮囊 1.2 人靠衣装,车靠涂装 1.3 亮个相 1.4 你看到了啥 ...转载 2019-01-08 13:30:15 · 123 阅读 · 0 评论 -
【设计模式学习笔记】解释器模式
解释器模式,最经典的解释器模型就是我们用的那些IDE。将你编写的语言转成机器语言。这个转换就可以理解为解释。文章目录 1.1 模型结构 1.2 环境角色 1.3 抽象表达式接口 1.4 终结和非终结表达式实现 1.5 测试 1.6 ...转载 2019-01-14 08:51:01 · 250 阅读 · 0 评论 -
23种设计模式趣谈
好东西不得不转在网上看见了这篇文章,作者以轻松的语言比喻了java的32种模式,有很好的启发作用。创建型模式 1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求...转载 2018-03-24 08:54:59 · 290 阅读 · 0 评论