Java设计模式
大米粒ing
只有很努力才能看起来毫不费力
展开
-
装饰者模式
装饰者模式Decorator模式(别名Wrapper):动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的代替方案。意图:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。设计原则:1. 多用组合,少用继承。 利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为。然而,如原创 2014-03-30 11:15:08 · 985 阅读 · 0 评论 -
命令模式
定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。类型:行为类模式类图:命令模式的结构 顾名思义,命令模式就是对命令的封装,首先来看一下命令模式类图中的基本结构:Command类:是一个抽象类,类中对需要执行的命令进行声明,一般来说要对外公布一个execute原创 2014-03-26 20:30:01 · 793 阅读 · 0 评论 -
工厂模式
工厂模式细分有三种,分别为:简单工厂模式、工厂方法模式、抽象工厂模式。现单个的讲,最后再讲这三个的区别。这篇文章主要通过一个农场的实例来讲解,这也是《java与模式》书中的例子,只不过我对一些部分进行了简化,一些部分进行了扩充,以帮助理解。例子如下:有一个农场公司,专门向市场销售各类水果。有如下水果:● 葡萄(grape)● 草莓(strawberry)● 苹果(apple原创 2014-03-26 11:42:12 · 965 阅读 · 0 评论 -
Singleton
定义 : Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。运用:1)系统资源,如文件路径,数据库链接,系统常量等2)全局状态化类,类似AutomicInteger的使用优缺点:1)节省内存有利于垃圾回收2)只能使用在特定的环境下,受限制于JVM和容器 单例作用范围的前提是在一个ClassLoad下。所以像分布式应原创 2014-03-26 14:58:37 · 746 阅读 · 0 评论 -
java 迭代器模式
定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。类型:行为类模式类图: 如果要问java中使用最多的一种模式,答案不是单例模式,也不是工厂模式,更不是策略模式,而是迭代器模式,先来看一段代码吧:[java] view plaincopypublic static void prin转载 2014-04-03 16:19:00 · 912 阅读 · 0 评论 -
模板方法模式
一、概念 模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。二、模板方法模式的结构 模板方法模式是所有模式中最为常见的几个模式之一,是基于继承的代码复用的基本技术。原创 2014-04-02 00:57:15 · 1080 阅读 · 0 评论 -
外观模式
外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。设计原则:“最少知识”原则(Least Knowledge)——就任何对象而言,在该对象的方法内,我们只应该调用属于以下范围的方法:1)该对象本身;2)被当做方法的参数而传递进来的对象;3)此方法所创建或实例化的任何对象;4)对象的任何组件。转载 2014-04-01 20:34:17 · 684 阅读 · 0 评论 -
观察者模式
1. 概述 有时被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。2. 解决的问题 将一个系统分割成一个一些类相互协作的类有一个不好的副作用,那就是需要维护相关对象间的一致性。我们不希望为了维持一致性而使各类紧密耦合,这样会给维护、扩展和重用都带来不便。观察原创 2014-03-30 16:33:41 · 980 阅读 · 0 评论 -
适配器模式
适配器模式 把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式的用途 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的电源插座却只有两极,没有地极。电源插座与笔记本电脑的电源插头不匹配使得笔记本电脑无法使用。这时候一个三相到两相的转换器(适配器)就能解决原创 2014-03-30 00:03:12 · 1061 阅读 · 0 评论 -
策略模式
概念: 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。下面用一个工厂模式和策略模式的对比进行说明策略模式工厂模式:public interface Operation { double GetResult(double a,double b);}public class AddOper原创 2014-03-30 17:56:01 · 874 阅读 · 0 评论 -
优秀程序设计的Kiss原则(keep it simple,stupid)
良好的编程原则与良好的设计工程原则密切相关。本文总结的这些设计原则,帮助开发者更有效率的编写代码,并帮助成为一名优秀的程序员。1.避免重复原则(DRY – Don’t repeat yourself)编程的最基本原则是避免重复。在程序代码中总会有很多结构体,如循环、函数、类等等。一旦你重复某个语句或概念,就会很容易形成一个抽象体。2.抽象原则(Abstraction Pri转载 2014-03-26 20:44:10 · 13643 阅读 · 0 评论