Fork me on Gitee

随笔分类 -  Design Patterns

23
摘要:Command?? 把方法的调用用一个类的实例来承载,要管理工作的历史记录,创建这些方法执行的命令的集合,只需管理这些实例的集合即可,而且还可以随时再次执行过去的命令,或是将多个过去的命令整合为一个新命令并执行。称之为Command设计模式 那里合适使用: Command有时也被称为事件(event 阅读全文
posted @ 2018-11-04 11:49 ---dgw博客 阅读(2299) 评论(0) 推荐(1) 编辑
摘要:Flyweight ?? Flyweight是“轻量级”的意思,指的是拳击比赛中选手体重最轻的等级。顾名思义,该设计模式的作用是为了让 对象变“轻”。 简单概括:通过尽量共享实例来避免new出实例 这里的共享不是任何对象都是共享的,在满足业务逻辑要求的情况下,将会重复利用的对象在对象的生命周期中保持 阅读全文
posted @ 2018-11-01 21:10 ---dgw博客 阅读(120) 评论(0) 推荐(0) 编辑
摘要:State??? State模式中,我们用类来表示状态。以类来表示状态后,我们就能通过切换类来方便地改变对象的状态。当需要增加新的状态时,如何修改代码这个问题也会很明确。 直接用状态代替硬编码 依赖于状态的处理 ,来执行具体的操作 理清职责 实现功能: 名字=======》》》》》说明 State 阅读全文
posted @ 2018-10-30 22:42 ---dgw博客 阅读(944) 评论(0) 推荐(1) 编辑
摘要:Memento模式? 使用面向对象编程的方式实现撤销功能时,需要事先保存实例的相关状态信息。然后,在撤销时,还需要根据所保存的信息将实例恢复至原来的状态。这个时候你需要使用Memento设计模式。(以及实例实现对状态的保存) 关键字: 1.·Undo(撤销) 2.·Redo(重做) 3.·Histo 阅读全文
posted @ 2018-10-29 23:02 ---dgw博客 阅读(338) 评论(0) 推荐(0) 编辑
摘要:Observer 设计模式? 在Observer模式中, 当观察对象的状态发生变化时,会通知给观察者 。Observer模式适用于根据对象状态进行相应处理的场景。 Observer 并非主动观察,而是被动观察,实际可以又称之为 发布 订阅者 模式 MVC Model、View、Controller, 阅读全文
posted @ 2018-10-28 22:20 ---dgw博客 阅读(2071) 评论(0) 推荐(0) 编辑
摘要:Mediator ? Mediator的意思是“仲裁者”“中介者”。一方面,当发生麻烦事情的时候,通知仲裁者;当发生涉及全体组员的事情时,也通知仲裁者。当仲裁者下达指示时,组员会立即执行。团队组员之间不再互相沟通并私自做出决定,而是发生任何事情都向仲裁者报告。另一方面,仲裁者站在整个团队的角度上对组 阅读全文
posted @ 2018-10-27 22:20 ---dgw博客 阅读(859) 评论(0) 推荐(1) 编辑
摘要:Visitor ? 在Visitor模式中,数据结构与处理被分离开来。我们编写一个表示“访问者”的类来访问数据结构中的元素, 并把对各元素的处理交给访问者类。这样,当需要增加新的处理时,我们只需要编写新的访问者,然后让 数据结构可以接受访问者的访问即可。 概括: 数据结构与处理彼此分开,当需要实现新 阅读全文
posted @ 2018-10-27 17:23 ---dgw博客 阅读(462) 评论(0) 推荐(1) 编辑
摘要:Decorator模式? 假如现在有一块蛋糕,如果只涂上奶油,其他什么都不加,就是奶油蛋糕。如果加上草莓,就是草莓奶油蛋糕。如果再加上一块黑色巧克力板,上面用白色巧克力写上姓名,然后插上代表年龄的蜡烛,就变成了一块生日蛋糕 像这样不断地为对象添加装饰的设计模式被称为Decorator模式 简单描述: 阅读全文
posted @ 2018-10-24 22:49 ---dgw博客 阅读(439) 评论(2) 推荐(0) 编辑
摘要:Composite 设计模式? 在计算机的文件系统中,有“文件夹”的概念(在有些操作系统(Linux操作系统)中,也称为“目录”)。文件夹里面既可以放入文件,也可以放入其他文件夹(子文件夹)。在子文件夹中,一样地既可以放入文件,也可以放入子文件夹。可以说,文件夹是形成了一种容器结构、递归结构。 结构 阅读全文
posted @ 2018-10-23 22:58 ---dgw博客 阅读(702) 评论(0) 推荐(0) 编辑
摘要:Facade? 如果是按照RUP+ 的开发模式,随着迭代与增量的进行,软件代码会越来越庞大,各个模块之间的关系会越来越复杂,如何你是初次接受该项目的开发非非常棘手,要理解清楚他们之间的关系,才能继续完成下面的工作。不过与其这么做,不如为这个大型程序准备一个“窗口”。这样,我们就不必单独地关注每个类了 阅读全文
posted @ 2018-10-22 23:02 ---dgw博客 阅读(211) 评论(0) 推荐(0) 编辑
摘要:Strategy 无论什么程序,其目的都是解决问题。而为了解决问题,我们又需要编写特定的算法。使用Strategy模式可以整体地替换算法的实现部分。能够整体地替换算法,能让我们轻松地以不同的算法去解决同一个问题,这种模式就是Strategy模式。(整体替换算法) 理清职责 |名字|说明 |Hand表 阅读全文
posted @ 2018-10-21 22:58 ---dgw博客 阅读(674) 评论(0) 推荐(0) 编辑
摘要:Chain Of Responsibility? 这种情况下,我们可以考虑将多个对象组成一条职责链,然后按照它们在职责链上的顺序一个一个地找出到底应该谁来负责处理。 通俗:她告诉我们应该去“营业窗口”。然后等我们到了“营业窗口”后,又被告知应该去“售后部门”。等我们好不容易赶到了“售后部门”,又被告 阅读全文
posted @ 2018-10-20 23:37 ---dgw博客 阅读(555) 评论(0) 推荐(0) 编辑
摘要:Bridge??? Bridge的意思是“桥梁”。就像在现实世界中,桥梁的功能是将河流的两侧连接起来一样,Bridge模式的作用也是将两样东西连接起来,它们分别是类的功能层次结构和类的实现层次结构。 父类通过声明抽象方法来定义接口(APl):需要使用继承强关联方式,那么必须使用中间层抽象子类来实现方 阅读全文
posted @ 2018-10-12 23:00 ---dgw博客 阅读(433) 评论(0) 推荐(0) 编辑
摘要:Abstract Factory? 抽象工厂的工作是将“抽象零件”组装为“抽象产品”。在template method模式中由与顶级父类提供算法实现,但在Factory Method 中也是定义好framework中具体的Product与Factory,并且由与子类去实现具体的工厂 产品实现,但是抽 阅读全文
posted @ 2018-10-12 16:38 ---dgw博客 阅读(196) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2018-10-11 15:48 ---dgw博客 阅读(55) 评论(1) 推荐(0) 编辑
摘要:简单引入 单例设计模式作为最简单,最常用的设计模式。一般是这两中写法,这两种写法教科书所谓的标准写法,但是实际上存在不少问题。后面介绍标准写法,以规避这些问题。 1.懒汉式: 2.恶汉式 标准写法 改变懒汉式1. (规避线程安全问题)加上 synchronized修饰方法即可 改变懒汉式2. 双重检 阅读全文
posted @ 2018-05-30 23:17 ---dgw博客 阅读(247) 评论(0) 推荐(0) 编辑
摘要:# 什么是原型设计模式 > 这里与软件工程中的原型开发模式有那么一点类似的地方,我们首先需要构建出一个原型,这个原型可以在现实开发中抽象出来的具体类型,但是这个类型与具体的类又不同,需要抽取公共的部分,通过构建管理器,实现创建不同需要的类型, ### 考虑使用原型设计模式的三种情况 第一种情况是需要 阅读全文
posted @ 2018-05-28 22:41 ---dgw博客 阅读(1192) 评论(0) 推荐(0) 编辑
摘要:什么是工厂设计模式 根据名字即可了解,工厂肯定是用来生产产品的,在我们的程序开发中,需要用到不同的类,对于熟悉SSH、SSM开发的可以知道,在初期学习的时候,总是有一个框架提供好的的factory供我们使用,利用它可以创建访问数据库的连接等操作。 定义: 利用template method设计模式创 阅读全文
posted @ 2018-05-07 16:56 ---dgw博客 阅读(933) 评论(0) 推荐(0) 编辑
摘要:什么是模板设计模式 对于不了解的模板设计模式的来说,可以认为如同古代的造纸术一样,纸所以成型,取决于用了模板的形状,形状又由镂空的木板组成,而你想要造什么纸,又取决于你使用什么材料. 上面提到了两个关键点 定义: 如同我们在父类中定义处理流程的框架,而在子类中实现具体处理的模板称之为template 阅读全文
posted @ 2018-04-28 17:20 ---dgw博客 阅读(442) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示