设计模式
文章平均质量分 68
NetMatrix
这个作者很懒,什么都没留下…
展开
-
单例模式 饿汉式 懒汉式
1、饿汉式 package singleton; /** * 饿汉式单例 * */ public class HungrySingleton { /**jvm保证instance只被初始化一次*/ private static HungrySingleton instance = new HungrySingleton(); /**阻止外部使用new实例化对象*/ private HungrySingleton(){ } /** * 获取实例 * @return 唯一的insta转载 2010-07-10 21:26:00 · 1174 阅读 · 0 评论 -
java 代理模式
什么叫代理呢,网络中有各种各样的代理,比如我们上网有时候用代理服务器。你通过这样上网就是使用了代理上网。 再举个通俗的例子,你想找某局长帮你做一件事情,但局长官位显赫,你又不能轻易见着,你就想到了找他的秘书,通过她传话给局长,这样你就等于请他的秘书帮你办成了那件事。秘书为什么就可以找到局长呢,因为秘书和局长之间有一定的关系。这里产生了四个对象:你、秘书、局长、秘书-局长(关系)。 JAVA中同样有代理关系,我们叫做代理模式。代理模式的作用是:为其他对象(局长)提供一种代理转载 2010-07-13 21:31:00 · 600 阅读 · 0 评论 -
Java 状态模式
一个对象有多种状态,在不同的状态下,同一种方法有不同的行为。如果用swich-case语句,将有大量的条件分支和逻辑代码混在一起。状态模式将每个状态封装到一个独立的类中,利用多态性使得不同状态下同一种方法表现不同的行为。状态模式的UML图如下:星际中人族的机枪兵Marine有两种状态:普通状态和打了兴奋针后的状态,两种状态下机枪兵的开枪频率是不同的,我们用状态模式来实现机枪兵的fire()方法。首先定义抽象状态State接口,这个接口指定了机枪兵的fire行为:public interface St转载 2010-07-27 21:08:00 · 3413 阅读 · 1 评论 -
Java 工厂模式
<br />java工厂模式一、引子话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)看来这人比较爱国,没有日本车),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说"开奔驰车!",坐上Bmw后他说"开宝马车!",坐上Audi后他说"开奥迪车!"。你一定说:这人有病!直接说开车不就行了?! 而当把这个爆发户的行为放到我们程序语言中来,我们发现C语言一直是通过这种方式来坐车的!幸运的是,这种有病的现象在OO语言中可以避免了。下面以Java转载 2010-07-27 22:02:00 · 608 阅读 · 0 评论 -
简单工厂模式
<br />简单工厂模式UML图<br /><br /> <br />JAVA代码<br />Operation类<br />public abstract class Operation { private double numberA; private double numberB; public double getNumberA() { return numberA; } public void setNumberA(double numberA) { this转载 2010-12-26 15:41:00 · 582 阅读 · 0 评论 -
抽象工厂
<br />有几点需要明确:<br />1. 客户端按族来创建产品(通过类图,可以看到)而工厂方法(简单工作)所对应的产品,是没有产品族的概念的,<br /> 或者说,不是按产品族(产品功能)来创建产品的。<br />2. 这些产品不能抽象到一个接口或抽象类中<br />这是,需要使用抽象工厂来完成产品的创建。<br />在以下情况下应该考虑使用抽象工厂模式:一个系统不应该依赖于产品类实例如何被创建、组合和表达的细节,这对于所有形态的工厂模式都是重要的。同属于同一个产品族的产品是在一起时用的,这一约束转载 2010-12-29 14:12:00 · 574 阅读 · 0 评论