设计模式
文章平均质量分 88
gaojie1190
这个作者很懒,什么都没留下…
展开
-
面向对象设计的原则------单一职责原则
学习设计模式,自然会涉及面向对象的设计原则,面向对象的设计原则一般包括五个原则,下面详细介绍下五个原则:1、单一职责原则(single responsibility principle ) There should never be more than one reason for a class to change. 所谓单一职责原则,就是对一个类...2009-10-09 20:36:10 · 138 阅读 · 0 评论 -
DAO设计模式
虽然DAO模式已经有了好多的成熟的框架,但它仍然是一个比较重要的设计模式。要做一个比较合理的DAO模式,你需要对工厂模式、单例模式、模板模式、策略模式、代理模式、泛型、反射机制、输入输出、异常等知识比较熟悉。下面结合自己理解,设计一个DAO设计模式的例子,希望大家给与指正。1、数据库连接池的工具类。 在数据库连接池的工具类中,采用了开源的DBCP数据库连接池,调用了Da...2009-07-04 11:40:59 · 127 阅读 · 0 评论 -
单例模式完全剖析
概要 单例模式是最简单的设计模式之一,但是对于Java的开发者来说,它却有很多缺陷。在本月的专栏中,David Geary探讨了单例模式以及在面对多线程(multithreading)、类装载器(classloaders)和序列化(serialization)时如何处理这些缺陷。 单例模式适合于一个类只有一个实例的情况,比如窗口管理器,打印缓冲池和文件系统,它们都是原型的例子...原创 2009-07-07 21:01:53 · 82 阅读 · 0 评论 -
jdbcTemplate分页封装
1.JdbcTemplateExtend.java public class JdbcTemplateExtend extends JdbcTemplate { private DataSource dataSource; /** * 默认构造器,调用此方法初始化,需要调用setDataSource设置数据源 */ public JdbcTemplateExtend() { } /** * 初始构...原创 2009-07-16 09:17:01 · 434 阅读 · 0 评论 -
策略模式
今天学习策略模式。策略模式是这个样子的。定义一个接口,接口的实现可以不断扩展。而客户端调用的context类和该接口之间采用组合的方式进行关联,和依赖注入中的构造函数注入方法很相似。借用网路上流传的刘备娶媳妇例子做一下说明。 1、首先定义策略接口/*** @author cbf4Life cbf4life@126.com* I'm glad to share my kn...2009-07-19 23:01:58 · 79 阅读 · 0 评论 -
简单工厂模式、代理模式、策略模式如此相似
最近,一直在看设计模式,感觉简单工厂模式、代理模式、策略模式、依赖注入在实现方式上简直是大同小异。有些可能侧重点不同。下面通过代码比较下他们之间的区别,pk下。1、定义个接口package com.cvicse.Ifruit;/** * 水果接口 * */public interface Fruit { /** * 水果生长 */ public...2009-07-21 22:34:55 · 132 阅读 · 0 评论 -
门面模式(外观模式)
1、外观模式 为子系统的一组接口提供一个一致的界面,此模式为客户端或子系统提供一个高层接口,这个接口使得客户端或子系统更加方便使用。简单的说,外观模式里面的实现可能是比较复杂的,在里面的实现中可能会涉及调用多个接口或调用顺序。但向子系统或客户端提供接口却比较简单,客户端或子系统只需关注接口,而并不需要关心里面复杂的实现和调用顺序。2、图 3、使用范围(1)业务层和表面层的层与层之...2009-07-29 22:49:58 · 91 阅读 · 0 评论 -
适配器模式
适配器模式通俗的说是将两个联系不密切的类或类与接口通过另一个类做为纽带将两个类或类与接口联系起来。举个简单的例子:中国制造的笔记本电源插孔可能是两个的,而美国的电源都是三个插孔的,如何让中国的笔记本在美国正常工作。我们就拿个适配器在他们之间转化一下,这样就能正常工作了。就是把不适应的接口通过第三个纽带让他们适合,能正常通信,这就是适配器模式。适配器模式的宗旨就是,保留现有类所提供的服务,向...2009-08-01 14:43:48 · 83 阅读 · 0 评论 -
适配器和外观模式的区别
ok2009-08-01 18:23:25 · 120 阅读 · 0 评论 -
命令模式
1、Commad模式是一种对象行为模式,它可以对发送者(sender)和接收者(receiver)完全解耦(decoupling)。("发送者" 是请求操作的对象,"接收者" 是接收请求并执行某操作的对象。有了 "解耦",发送者对接收者的接口一无所知。)这里,"请求"(request)这个术语指的是要被执行的命令。Command模式还让我们可以对 "何时" 以及 "如何" 完成请求进行改2009-08-02 14:06:30 · 81 阅读 · 0 评论 -
组合模式-------树形模式
1、组合模式定义 组合模式是将对象组合成树形结构以表示“部分-整体”的层次结构。它使得用户对单个对象的使用和组合对象的使用具有一致性。组合模式又叫做树形模式。其在项目开发中涉及树的结构都会想到组合模式。2、组合模式的类图 3、组合模式分类组合模式分为透明方式和安全方式。 透明模式是在Component类中声明对象的所有方法。叶子类和组合类都继承该类,使得叶子...2009-08-03 20:42:23 · 301 阅读 · 0 评论 -
工厂模式与DAO模式
工厂模式是设计模式中较简单的模式,但在项目的开发过程中会常常用到它。下面分析下工厂模式,提出一种在项目中比较可行的工厂方法的实现。同时,结合单例模式,构建DAO设计模式。工厂模式1、工厂模式的组成简单工厂模式又叫静态工厂模式,顾名思义,它是用来实例化目标类的静态类。它由三种角色组成:抽象产品角色(Product):它一般是具体产品继承的父类或者实现的接口。在java中由...2009-07-02 21:17:59 · 377 阅读 · 0 评论 -
动态代理模式
2.动态代理类 Java动态代理类位于Java.lang.reflect包下,一般主要涉及到以下两个类: (1). Interface InvocationHandler:该接口中仅定义了一个方法Object:invoke(Object obj,Method method, Object[] args)。在实际使用时,第一个参数obj一般是指代理类,meth...原创 2009-06-30 22:25:38 · 76 阅读 · 0 评论 -
代理模式
1. 代理模式 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式一般涉及到三个角色: 抽象角色:声明真实对象和代理对象的共同接口; 代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接...原创 2009-06-29 15:04:24 · 76 阅读 · 0 评论 -
面向对象设计的原则------开闭原则
开闭原则(Open-Closed Principle,OCP)1、“开-闭”原则的定义及优点1)定义:一个软件实体应当对扩展开放,对修改关闭( Software entities should be open for extension,but closed for modification.)。即在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。2)满足“开-闭”原则...原创 2009-10-10 23:09:16 · 81 阅读 · 0 评论 -
面向对象设计的原则------里氏代换原则
里氏代换原则(Liskov Substitution Principle, LSP) 1、里氏代换原则定义若对于每一个类型S的对象o1,都存在一个类型T的对象o2,使得在所有针对T编写的程序P中,用o1替换o2后,程序P的行为功能不变,则S是T的子类型。 What is wanted here is something like the following substitution p...原创 2009-10-11 14:21:37 · 124 阅读 · 0 评论 -
面向对象设计的原则------依赖倒置原则
依赖倒置原则(Dependence Inversion Principle)1、依赖倒置原则的定义 1)上层模块不应该依赖于底层模块,它们都应该依赖于抽象。 2)抽象不应该依赖于细节,细节应该依赖于抽象,要针对接口编程,不要针对实现编程。 Abstractions should not depend upon details,Details should...原创 2009-10-11 18:27:10 · 92 阅读 · 0 评论 -
面向对象设计的原则------接口隔离原则
接口隔离原则(Interface Segregation Principle)1、接口隔离原则的定义:第一种定义: Clients should not be forced to depend upon interfaces that they don't use.客户端不应该依赖它不需用的接口。第二种定义:The dependency of one class to anothe...原创 2009-10-12 15:50:00 · 98 阅读 · 0 评论 -
面向对象设计的原则---------迪米特原则
迪米特原则(Law of Demeter)1、迪米特原则的定义 迪米特原则也叫最少知识原则(Least Knowledge Principle, LKP)简单的说,就是如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果一个类需要调用类另一个类的某个方法的话,应当通过第三个类来转发调用。迪米特法则可以简单说成:talk only to your immedia...原创 2009-10-15 21:15:34 · 139 阅读 · 0 评论 -
MVC设计模式理解
常常说MVC设计模式,今天抽空整理下,感觉模式这东西无论啥时候都不过时。 MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。 视图(View)代表用户交互界面,对于web而言,可以是多种多样的视图展现。...2009-11-16 22:11:40 · 116 阅读 · 0 评论 -
模版模式
今天看书,看到了模版模式,就顺便复习一下,模版模式是父类建立骨架,而子类具体实现其方法。它是把不变的行为搬移到了父类,去除了子类重复的代码,它提供了一个很好的代码复用的平台。当不变的行为和可变的行为在子类中混合在一起的时候,不变的行为就会在代码中重复。通过模版方法行为把重复的行为转移到单一的地方,这样就帮助子类摆脱重复代码的纠缠。例如:一个复杂的例子用模版模式是如何实现的。考生做试题...2009-06-17 22:59:07 · 86 阅读 · 0 评论 -
单例模式----数据库连接池管理类的应用
单例模式,它用以确保一个特定的类只有一个对象被实例化。它包含两种类型,有些书上叫singleton模式和Double—Checked Locking模式。 单例模式注意问题: 1、拥有一个特定的方法,这个方法被用于实例化需要的对象。当该方法被调用的时候,它检查这个对象是否被实例化。如果已实例化,这个方法仅仅返回这个对象的一个引用。如果对象未被实例化,这个方...原创 2009-06-19 22:59:19 · 386 阅读 · 0 评论 -
原型模式
前面java基础中介绍了clone和序列化,结合clone和序列化的知识,今天学习下原型模式。 定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。 ...2009-06-26 22:28:29 · 73 阅读 · 0 评论 -
面向接口编程(选择Java接口还是抽象类)
很多人有过这样的疑问:为什么有的地方必须使用接口而不是抽象类,而在另一些地方,又必须使用抽象类而不是接口呢?或者说,在考虑Java类的一般化问题时,很多人会在接口和抽象类之间犹豫不决,甚至随便选择一种。 实际上接口和抽象类的选择不是随心所欲的。要理解接口和抽象类的选择原则,有两个概念很重要:对象的行为和对象的实现。如果一个实体可以有多种实现方式,则在设计实体行为的描述方式时,应当达到这...原创 2009-06-29 14:22:47 · 164 阅读 · 0 评论 -
观察者模式
gaojie2009-08-04 22:14:10 · 72 阅读 · 0 评论