设计模式
文章平均质量分 79
dai_
目前很懒
展开
-
工厂
工厂:简单,工厂,抽象package designpattern;public class FactoryContext { public static void main(String[] args) { Service s1 = FactoryContext.getService(new Service1Factory()); s1.update1(); s1原创 2013-11-25 18:35:15 · 539 阅读 · 0 评论 -
责任链
Java Filter 与 责任链设计模式转载 2014-02-21 14:56:14 · 457 阅读 · 0 评论 -
Comparable&Comparator
ComparableComparable 此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法。对象本身就已经支持自比较所需要实现的接口(如 String、Integer 自己就可以完成比较大小操作)。Comparator如果一个类不能实现Comparable接口,那么我们自己可以提供Comparator的排转载 2014-01-13 17:24:34 · 715 阅读 · 0 评论 -
享元模式-AbstractMap结构
享元模式: 共享数据的模式。例子:创建定制的Map-->FlyweightMap.1. 默认填充DATA元数据,避免每次使用FlyweightMap时创建新的数据。2. Map的数据结构package designpattern.flyweight;import java.util.AbstractMap;import java.util.AbstractSet;i原创 2014-01-14 16:16:35 · 1333 阅读 · 0 评论 -
装饰器-decorator
在基类的基础上可封装一系列的功能,并动态组合调用顺序。1. 基类:class Basic { private String value; public void set(String var) { value = var; } public String get() { return value; }}2. 基础装饰类:clas原创 2014-01-11 15:19:29 · 893 阅读 · 0 评论 -
模板方法
模版方法:通过实现类扩展的方法来完成业务逻辑。1. 创建实例的模板package designpattern;public abstract class GenericWithCreate { final T element; GenericWithCreate() { element = create(); } abstract T create原创 2014-01-09 15:21:54 · 860 阅读 · 0 评论 -
动态代理
JDK的实现1. 实现InvocationHandler接口package reflect;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class DynamicProxyHandl原创 2013-12-23 09:58:00 · 876 阅读 · 0 评论 -
泛型(2)_适配器
1. 定义一个生成器接口:package generator;public interface Generator { T next();}2. 实现类,用于生成Fibonacci数列:package generator;public class Fibonacci implements Generator { private int count原创 2014-01-04 10:12:22 · 1165 阅读 · 0 评论 -
策略模式与外观模式
1.策略 :定义不同的算法族,并且之间可以互相替换;让算法的变化独立于使用算法的客户,以动态的改变对象的行为。2. 例子:随机生成宠物,并统计各种宠物生成数量。a) 抽象类:PetCreator,用于随机生成宠物。package context;import java.util.ArrayList;import java.util.Collections;import原创 2013-12-17 11:05:41 · 1878 阅读 · 1 评论 -
容器类常用方法(4)_适配
1. Iterable接口: 实现这个接口允许对象成为 "foreach" 语句的目标;Collection实现了此接口2. ArrayList实现了Iterable接口,提供了用foreach正向迭代的能力,现在需要增加一个反向迭代的能力,实现代码如下: a)用到了适配器模式package context;import java.util.ArrayList;impo原创 2013-11-30 15:37:09 · 883 阅读 · 0 评论 -
迭代器与内部类
迭代器:package designpattern;import java.util.Arrays;public class IteratorContext { public static void main(String[] args) { MyList list = new MyList(3); list.add("ABC"); list.add("1原创 2013-11-25 11:50:52 · 927 阅读 · 0 评论 -
工厂(二)
使用匿名内部类,简化工厂方法package com.yjq.factory;public class FactoryContext { public static void main(String[] args) { Service s1 = FactoryContext.getService(Service1.sf); s1.update1(); s1.update2();原创 2013-11-25 18:47:36 · 754 阅读 · 0 评论 -
命令模式
Java命令模式(Command模式)转载 2014-02-22 11:21:15 · 437 阅读 · 0 评论