Java设计模式
文章平均质量分 79
Rosanu
你开心,我快乐!
展开
-
命令者模式-马士兵设计模式教程 .
//Command模式经常用来作为还原功能,也就是Ctrl+Zpublic abstract class Command { public abstract void execute(); //返回上一步 public abstract void unDo();}public class ShopingCommand extends Command{ @Overri转载 2012-07-20 15:20:21 · 2365 阅读 · 0 评论 -
使用自动生成java文件和自动编译的动态代理模式-马士兵设计模式教程
/* * 接口中有几个方法,那么使用反射的getMethods()就会有几个方法名 * 因为接口是不会继承Object的 */public interface Moveable { void move();//}public class Car implements Moveable{ @Override public void move() { Sy转载 2012-07-27 14:12:26 · 2206 阅读 · 0 评论 -
静态代理模式-马士兵设计模式教程
public interface Moveable { void move();}public class Tank implements Moveable{ @Override public void move() { System.out.println("我是坦克,所向披靡,进攻中!"); try { Thread.sleep(new Ra转载 2012-07-27 14:25:38 · 1897 阅读 · 0 评论 -
用java调用编译器编译java文件-马士兵设计模式教程-动态代理 .
//编译器类只有jdk6里面才有public class CompilerTest { //window下面的换行是\r\t 回车换行 public static void main(String[] args) throws IOException, ClassNotFoundException, Exception { //得到系统当前的路径,即是java工程的路径(E:\w转载 2012-07-27 14:31:18 · 1876 阅读 · 0 评论 -
简单模拟Comparator-策略设计模式-马士兵设计模式教程
//使一个类本身具备比较性//优点:实现此接口的类可以自己重写自己规定比较的内容//缺点:因为只有一个方法,一个类只能有一种方式进行比较public interface MyComparable { public int compareTo(E e);}public interface MyComparator { int compare(T o1,T o2);转载 2012-07-27 14:36:12 · 1968 阅读 · 0 评论 -
冒泡排序的简单事例
//冒泡法排序:在排序过程中总是小数往前放,大数往后放,相当于气泡往上升public class BubbleSort { public static void main(String[] args) { int[] ints = new int[]{ 11,66,22,0,55,22,1,32 }; bubbleSort(ints); for(int i=0; i<in转载 2012-07-27 14:40:13 · 636 阅读 · 0 评论 -
选择排序的简单事例 .
//选择排序//每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,//直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。//不稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。public class SelectSort { public static void main(String[] args) {转载 2012-07-27 14:40:53 · 752 阅读 · 0 评论 -
简单模拟LinkedList-迭代器设计模式-马士兵设计模式教程 .
import java.util.Iterator;//LinkedLink其实是双向链表public class MyLinkedList implements Iterable{ int size; private Node head=null;//头部节点 private Node tail=null;//尾部节点 public void add(E e){ N转载 2012-07-27 14:42:38 · 2174 阅读 · 0 评论 -
工厂方法模式-雷锋工厂-大话设计模式 .
类结构图: //工厂方法模式,工厂接口public interface Factory { LeiFeng createLeiFengFactory();}//雷锋public interface LeiFeng { void sweep();//扫地 void wash();//洗衣 void buyrice();//做饭}//使用转载 2012-07-27 14:50:09 · 1174 阅读 · 0 评论 -
抽象工厂模式第三步-使用抽象工厂模式-马士兵设计模式教程 .
其实使用abstract和interface只是根据你的需求来使用,在一些问题上并无太大的区别简单的工厂在产生产品系列(武器,食品等)的时候会很麻烦,会导致工厂泛滥抽象工厂在产生产品种类(枪,苹果等)的时候需要修改的地方会很多 public class Person { public static void main(String[] args) { Abst转载 2012-07-27 15:06:40 · 1937 阅读 · 0 评论 -
动态代理的实现1-简单实现
public class Test { public static void main(String[] args) throws Exception{ //第一种实现方式:分步骤操作 Class clazzproxy=Proxy.getProxyClass(Collection.class.getClassLoader(), Collection.class); C转载 2012-07-27 14:09:39 · 600 阅读 · 0 评论 -
动态代理的实现2-编写可生成代理和插入通告的通用方法 .
//一个通告或建议的接口public interface Advice { void afterMethod(Method method); void beforeMethod(Method method);}public class MyAdvice implements Advice{ private long start; @Override public转载 2012-07-27 14:00:04 · 519 阅读 · 0 评论 -
状态模式-马士兵设计模式教程
//表示状态的接口类public interface State { void smile(); void cry(); void say();}//高兴的状态public class HappyState implements State{ @Override public void cry() { System.out.println("高兴的哭"转载 2012-07-20 15:15:36 · 2459 阅读 · 0 评论 -
责任链或过滤器模式1-使用过滤器-马士兵设计模式教程 .
//过滤器接口public interface Filter { public String doFilter(String str);}//HTML的过滤器public class HTMLFilter implements Filter{ @Override public String doFilter(String str) { if(str==nu转载 2012-07-20 15:30:08 · 2462 阅读 · 0 评论 -
责任链或过滤器模式3-模拟tomcat的过滤器-马士兵设计模式教程 .
//过滤器接口public interface Filter { public void doFilter(Request req,Response res,FilterChain c);}//HTML的过滤器public class HTMLFilter implements Filter{ @Override public void doFilter(Req转载 2012-07-20 15:23:01 · 2936 阅读 · 0 评论 -
责任链或过滤器模式2-使用过滤链-马士兵设计模式教程 .
//过滤器接口public interface Filter { public String doFilter(String str);}//HTML的过滤器public class HTMLFilter implements Filter{ @Override public String doFilter(String str) { if(str==nu转载 2012-07-20 15:27:30 · 2703 阅读 · 0 评论 -
动态代理的实现3-实现aop功能的封装和配置 .
//一个通告或建议的接口public interface Advice { void afterMethod(Method method); void beforeMethod(Method method);}public class MyAdvice implements Advice{ private long start; @Override publ转载 2012-07-20 15:32:43 · 561 阅读 · 0 评论 -
使用自动生成java文件和自动编译的静态代理模式-马士兵设计模式教程
public interface Moveable { void move();//}public class Car implements Moveable{ @Override public void move() { System.out.println("我是卡车,出发开往目的地..."); }}//动态代理1public class Pr转载 2012-07-27 14:15:41 · 1416 阅读 · 0 评论 -
策略模式-商场促销-大话设计模式 .
类结构: //父类,商场结账的算法public interface SuperCash { //得到算过后的结账金额 public double getcash(double cash);}//正常的结账public class NormalCash implements SuperCash{ public double getcash(do转载 2012-07-27 14:34:10 · 972 阅读 · 0 评论 -
简单模拟ArrayList-迭代器设计模式-马士兵设计模式教程
import java.util.Iterator;public class MyArrayList implements Iterable{ public static int InitSize=2; private Object[] elementData=new Object[InitSize]; private static int size; public void转载 2012-07-27 14:46:02 · 1860 阅读 · 0 评论 -
简单工厂实现-大话设计模式
类结构图: public static void main(String[] args) {// Operation oper=OperationFactory.createOperation("+"); Operation oper=OperationFactory.createOperation("-"); System.out.println(oper转载 2012-07-27 14:58:49 · 938 阅读 · 0 评论 -
在 Java 设计模式之单例模式 -- Singleton
基本概念Singleton是一种创建性模型,它用来确保只产生一个实例,并提供一个访问它的全局访问点.对一些类来说,保证只有一个实例是很重要的,比如有的时候,数据库连接或Socket连接要受到一定的限制,必须保持同一时间只能有一个连接的存在.再举个例子,集合中的set中不能包含重复的元素,添加到set里的对象必须是唯一的,如果重复的值添加到set,它只接受一个实例.JDK中正式运用了Single转载 2012-10-13 22:42:16 · 1026 阅读 · 0 评论