Java 设计模式分类
设计模式在粒度和抽象层次上各不相同。由于存在众多的设计模式,所以我们可以用一种方式将它们组织起来。这里,我们根据两条准则对模式进行分类,如下表所示:
第一是目的准则,即模式是用来完成什么工作的。模式依据其目的可分为创建型( Creational)、结构型( Structural)、或行为型( Behavioral )三种。创建型模式与对象的创建有关;结构型模式处理类或对象的组合;行为型模式对类或对象怎样交互和怎样分配职责进行描述。
第二是范围准则,指定模式主要是用于类还是用于对象。类模式处理类和子类之间的关系,这些关系通过继承建立,是静态的,在编译时刻便确定下来了。对象模式处理对象间的关系,这些关系在运行时刻是可以变化的,更具动态性。从某种意义上来说,几乎所有模式都使用继承机制,所以“类模式”只指那些集中于处理类间关系的模式,而大部分模式都属于对象模式的范畴。
创建型类模式将对象的部分创建工作延迟到子类,而创建型对象模式则将它延迟到另一个对象中。结构型类模式使用继承机制来组合类,而结构型对象模式则描述了对象的组装方式。行为型类模式使用继承描述算法和控制流,而行为型对象模式则描述一组对象怎样协作完成单个对象所无法完成的任务。
还有其他组织模式的方式。有些模式经常会被绑在一起使用,例如, Composite(组合模式)常和Iterator(迭代器模式)或Visitor(访问者模式)一起使用;有些模式是可替代的,例如, Prototype(原型模式)常用来替代Abstract Factory(抽象工厂模式);有些模式尽管使用意图不同,但产生的设计结果是很相似的,例如, Composite(组合模式)和Decorator(装饰模式)的结构图是相似的。
还有一种方式是根据模式的“相关模式”部分所描述的它们怎样互相引用来组织设计模式。下图给出了模式关系的图形说明。
显然,存在着许多组织设计模式的方法。从多角度去思考模式有助于对它们的功能、差
异和应用场合的更深入理解。
Java设计模式分为创建模式, 结构模式, 行为模式 3种类型:
Java设计模式之创建模式包括:
Factory, 工厂模式
Singleton, 单例模式
Builder, 建造模式
Prototype, 原型模式
Java设计模式之结构模式包括:
Facade, 门面模式
Decorator, 装饰模式
Composite, 合成模式
Proxy, 代理模式
相关文档:
由于工作需要,要用.net的程序调用一个java编写的web service接口,接口的一个参数要求md5方式加密。
.net中的md5加密是很容易的,采用msdn中给出的方法:
// Hash an input string and return the hash as
// a 32 character hexadecimal string.
static string getMd5Hash(string input)
{
......
package com.joe;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test
{
//将字符串的数字字符输出
public static void main(String[] args)
{
String str = "iu7i8hy4j ......
【文章标题】java小程序(2)
【文章作者】曾健生
【作者邮箱】zengjiansheng1@126.com
【作者QQ】190678908
【作者声明】本人水平有限,失误之处,敬请各位指出。本人以前写的一些小程序,分享一下希望对各位学习java有帮助 ^-^
***************************************************************************** ......
Java语法总结 - 线程
一提到线程好像是件很麻烦很复杂的事,事实上确实如此,涉及到线程的编程是很讲究技巧的。这就需要我们变换思维方式,了解线程机制的比较通用的技巧,写出高效的、不依赖于某个JVM实现的程序来。毕竟仅仅就Java而言,各个虚拟机的实现是不同的。学习线程时,最令我印象深刻的就是那种不确定性、没有保 ......
一、.net Server端
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Web.Services.Description;
namespace WebApplica ......