![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 79
chongqingnantian
这个作者很懒,什么都没留下…
展开
-
建造者模式
Builder模式也叫建造者模式或者生成器模式,是由GoF提出的23种设计模式中的一种。Builder模式是一种对象创建型模式之一,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。 Builder模式的应用场景- 对象的创建:Builder模式是为对象的创建而设计的模式- 创建的是一个复合对象:被创建的对象为一个具有复...2012-06-07 10:34:07 · 69 阅读 · 0 评论 -
原型模式
<!--StartFragment--> 原型模式虽然很简单, 但是在 Java 中使用原型模式也就是 clone 方法还是有一些注意事项的, 我们通 过几个例子一个一个解说(如果你对 Java 不是很感冒的话, 可以跳开以下部分)。 对象拷贝时, 类的构造函数是不会被执行的。 一个实现了 Cloneable 并重写了 clone 方法的类 A, 有一个...原创 2012-07-30 13:09:42 · 65 阅读 · 0 评论 -
状态模式
State模式的定义: 不同的状态,不同的行为;或者说,每个状态有着相应的行为. 何时使用? State模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elseif else 进行状态切换, 如果针对状态的这样判断切换反复出现,我们就要联想到是否可以采取State模式了. 不只是根据状态,也有根据属性.如果某个对象的属性不同,对象的行为就不一样,这点在数据库系统中出现频率比较高...原创 2012-07-30 10:50:50 · 55 阅读 · 0 评论 -
访问者模式
<!--StartFragment--> <!--StartFragment--> <!--StartFragment--> 抽象访问者(Visitor): 抽象类或者接口, 声明访问者可以访问哪些元素, 具体到程序中就是 visit方法的参数定义哪些对象是可以被访问的; package VisitorPattern.visito...原创 2012-07-28 12:35:49 · 79 阅读 · 0 评论 -
责任链模式
抽象处理者 package ChainOfResponsibilityPattern.handler; import ChainOfResponsibilityPattern.requester.Woman; public abstract class Handler { private String handleType; private Handler nex...原创 2012-07-26 17:35:29 · 59 阅读 · 0 评论 -
观察者模式
观察者: package ObserverPattern.observer; import java.util.Observable; import java.util.Observer; import ObserverPattern.observerable.Staff; public class Manager implements Observer{ @Over...原创 2012-07-26 17:24:47 · 65 阅读 · 0 评论 -
组合模式
<!--StartFragment--> 抽象构件角色(Component): 定义参加组合的对象的共有方法和属性, 可以定义一些默认的行为或属性; package com.yy.compositePattern.tree3; public abstract class Corp { private String name = ""; private S...原创 2012-07-26 14:45:02 · 61 阅读 · 0 评论 -
装饰模式
MM们要过生日了 ,怎么也得表示下吧。最起码先送个蛋糕。蛋糕多种多样了。巧克力,冰淇淋,奶油等等。这都是基本的了 ,再加点额外的装饰,如蛋糕里放点花。放贺卡。放点干果吃着更香等等。看看我是如何设计的。 我想既然是蛋糕,那我就把蛋糕作为一个抽象类,剩下的蛋糕子类型来继承它,每个子类都有吃该蛋糕的感觉 ^_^,看起来真的不错。蛋糕的子类分别是奶酪蛋糕,巧克力蛋糕,冰淇淋蛋糕,插花的冰淇淋蛋糕...原创 2012-07-26 10:27:54 · 68 阅读 · 0 评论 -
工厂模式
一、引子话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)看来这人比较爱国,没有日本车),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说"开奔驰车!",坐上Bmw后他说"开宝马车!",坐上Audi后他说"开奥迪车!"。你一定说:这人有病!直接说开车不就行了?! 而当把这个爆发户的行为放到我们程序语言中来,我们发现C语言一直是通过...原创 2012-06-25 20:41:13 · 64 阅读 · 0 评论 -
单例模式
前面说提到的五种创建模式,主要解决的问题是如何创建对象,获得产品。而单例模式最要关心的则是对象创建的次数以及何时被创建。 Singleton模式可以是很简单的,它的全部只需要一个类就可以完成(看看这章可怜的UML图)。但是如果在“对象创建的次数以及何时被创建”这两点上较真起来,Singleton模式可以相当的复杂,比头五种模式加起来还复杂,譬如涉及到DCL双锁检测(double check...原创 2012-06-25 20:38:23 · 55 阅读 · 0 评论 -
命令模式
Command模式(命令) Java深入到一定程度,就不可避免的碰到设计模式这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解.设计模式在java的中型系统中应用广泛,遵循一定的编程模式,才能使自己的代码便于理解,易于交流,Command(命令模式)模式是比较常用的一个模式. Command命令模式: Command模式通过被称为Command的类封装了对目标对象的...原创 2012-06-25 18:03:18 · 68 阅读 · 0 评论 -
桥梁模式
桥梁模式的用意是将问题的抽象和实现分离开来实现,通过用聚合代替继承来解决子类爆炸性增长的问题。 比如我们有一个画图程序 有2个图形(Circle Rectangle )和2种画图方法(Drawing1 Drawing2) 图形可能会使用Drawing1来画图也可能使用Drawing2来画图 在这个画图程序中有两个可变因素 一个是图形的种类 有可能会增加新的图形 另一个是画图方法可能会有Draw...原创 2012-06-25 11:32:02 · 54 阅读 · 0 评论 -
策略模式
本文探讨初学使用策略模式时遇到的一些疑惑,以及在工作中慢慢解决之前遇到的疑惑,借此与大家分享。比如说本文谈到策略模式中环境角色Context的用处,为什么一定要用,可不可以将此取消。这些都是在学习和工作的实践总结中慢慢体会到的。首先,我们来看下策略模式的概念。一般的解释如下: 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立...原创 2012-06-16 00:10:53 · 78 阅读 · 0 评论 -
中介者模式
<!--StartFragment--> 抽象中介者(Mediator) 角色: 抽象中介者角色定义统一的接口用于各同事角色之间的通信。 package MediatorPattern.mediator; import MediatorPattern.colleague.Purchase; import MediatorPattern.colleague.Sale; i...原创 2012-07-30 14:45:47 · 64 阅读 · 0 评论