23种设计模式(java实例)
设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石
送人玫瑰手留余香
这个作者很懒,什么都没留下…
展开
-
生产者消费者模式(吃包子例子)
生产者-消费者问题是一个经典的进程同步问 题,该问题最早由Dijkstra提出,用以演示他提出的信号量机制。在同一个进程地址空间内执行的两个线程生产者线程生产物品,然后将物品放置在一个空 缓冲区中供消费者线程消费。消费者线程从缓冲区中获得物品,然后释放缓冲区。当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费 者线程释放出一个空缓冲区。当消费者线程消费物品时,如果没有满的原创 2015-06-08 21:36:36 · 3324 阅读 · 1 评论 -
java回调简单实现
package data; import java.util.HashMap; import java.util.Map; public class Good { CallBack callBack; public void setCallBack(CallBack callBack) { this.callBack=callBack; }原创 2015-06-02 10:35:00 · 1362 阅读 · 2 评论 -
(结构型模式七)享元模式
package com.eyugame.modle; import java.sql.Connection; import java.sql.DriverManager; import java.util.Vector; /** * 享元模式 * @author JYC506 * */ public class ConnectionPool { private Vector poo原创 2015-04-28 16:34:48 · 547 阅读 · 0 评论 -
(结构型模式六)组合模式
package com.eyugame.modle; import java.util.Vector; /** * 组合模式 * * @author JYC506 * */ public class Tree { private TreeNote root; public Tree(String name) { super(); this.root = new T原创 2015-04-28 14:55:52 · 720 阅读 · 0 评论 -
(结构型模式五)桥接模式
package com.eyugame.modle; /** * 桥接模式 * @author JYC506 * */ public class MyBridge extends Bridge { @Override void show() { this.getSource().show(); } public static void main(String[] args)原创 2015-04-28 14:26:35 · 888 阅读 · 0 评论 -
(结构性模式四)外观模式
package com.eyugame.modle; /** * 外观模式 * @author JYC506 * */ public class Computer { private Cpu cpu; private Disk disk; public Computer() { super(); this.cpu = new Cpu(); this.disk = new原创 2015-04-28 11:41:02 · 967 阅读 · 0 评论 -
(结构型模式三)代理模式
package com.eyugame.modle; /** * 代理模式 * @author JYC506 * */ public class Proxy implements IFood{ private IFood apple; public Proxy() { super(); apple=new Apple(); } @Override public v原创 2015-04-28 11:27:31 · 1127 阅读 · 0 评论 -
(结构型模式二)装饰模式
package com.eyugame.modle; /** * 装饰模式 * @author JYC506 * */ /*装饰者*/ public class Decorator implements IReceiver{ /*被装饰的对象*/ private IReceiver receiver; public Decorator(IReceiver receiver) {原创 2015-04-27 22:00:47 · 857 阅读 · 0 评论 -
(结构型模式一)适配器模式
package com.eyugame.modle; /** * 适配器模式 * @author JYC506 * */ /*比如A接口吃饭方式想跟B一样,但不需要其他方法比如:洗澡,上课啊, 所以找来C类,Ca类有A类的特征,又继承B类,A类说我吃饭就按C类吃饭的方法也就是按B类的具体方法吃饭*/ /*类的适配器模式*/ public class Adapter extends Sou原创 2015-04-27 21:40:48 · 600 阅读 · 0 评论 -
(行为型模式九)备忘录模式
package com.eyugame.modle; import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import java.util.HashMap; import java.uti原创 2015-04-27 20:18:24 · 732 阅读 · 0 评论 -
(行为型模式八)迭代器模式
package com.eyugame.modle; import java.util.ArrayList; import java.util.List; /** * 迭代器模式 * @author JYC506 * * @param */ /*自定义迭代器*/ public class MyIterator implements Iterator { private List原创 2015-04-27 14:56:33 · 597 阅读 · 0 评论 -
(行为型模式七)策略模式
package com.eyugame.modle; /** * 策略模式 * @author JYC506 * */ /*策略一*/ public class Strategy1 implements IStrategy{ @Override public void show() { System.out.println("使用策略1"); } public stati原创 2015-04-27 14:29:20 · 793 阅读 · 0 评论 -
(行为型模式六)责任链模式
package com.eyugame.modle; /** * 责任链模式 * * @author JYC506 * */ /* 事件接收者 */ public abstract class EventReceiver { private EventReceiver nextEventReceiver; public void setNextHandler(EventRe原创 2015-04-27 11:53:20 · 798 阅读 · 0 评论 -
(行为型模式五)命令模式
package com.eyugame.modle; /** * 命令模式 * @author JYC506 * */ public class MyCommand implements ICommand{ private Receiver receiver; public MyCommand(Receiver receiver) { super(); this.rec原创 2015-04-27 10:47:09 · 690 阅读 · 0 评论 -
(行为型模式四)访问者模式
package com.eyugame.modle; /** * 访问者模式 * @author JYC506 * */ /*访问者*/ public class Visitor implements IVisitor{ @Override public void update(IPro o) { o.doSomeThing(); } public static void原创 2015-04-27 10:26:02 · 749 阅读 · 0 评论 -
(行为型模式三)观察者模式
package com.modle; import java.util.Vector; import org.omg.CORBA.OBJECT_NOT_EXIST; /** * 观察者模式 * @author k560 * */ /*观察者接口*/ public interface Observer { /*观察到被观察者行为后执行的行为*/ void doSome();原创 2015-04-26 13:52:54 · 777 阅读 · 0 评论 -
(行为型模式二)中介者模式
package com.modle; /** * 中介者模式 * @author k560 * */ /*需求:产品A要比产品B贵100块,当改A的价格,B的价格也要同步改动,反过来也一样*/ public class Mediator extends AbstractMediator{ private AbstracProduct productA; private Abs原创 2015-04-26 13:24:00 · 668 阅读 · 0 评论 -
(行为型模式一)模板方法模式
package com.modle; import java.util.ArrayList; import java.util.BitSet; import java.util.List; /** * 模板方法模式 * @author k560 * */ public abstract class AbstractMap { /* 获取重复的数字 */ protected abst原创 2015-04-26 11:41:26 · 788 阅读 · 1 评论 -
(创建型模式五)原型模式
package com.eyugame.modle; /*原型类*/ public abstract class Prototype implements Cloneable { private int x; private int y; /*复制*/ public Prototype clone() { Prototype prototype =原创 2015-04-24 22:16:52 · 765 阅读 · 0 评论 -
(创建型模式四)创建者模式
package com.eyugame.modle; /** * 创建者模式 * * @author JYC506 * */ /*导演者*/ public class Director { IBuilder myBuilder=new MyBuilder(); public PhoneProduct createMiPhone() { myBuilder.setNameAn原创 2015-04-24 21:58:34 · 779 阅读 · 0 评论 -
(创建型模式三)抽象工厂模式
package com.eyugame.modle; /** * 抽象工厂模式 * * @author JYC506 * */ public class MyFactory implements IAbstractFactory { @Override public IProduct1 createIProduct1() { return new Product1();原创 2015-04-24 21:20:46 · 718 阅读 · 0 评论 -
(创建型模式二)工厂方法模式
package com.eyugame.modle; /** * 工厂模式 * @author JYC506 * */ public class Factory implements IFactory { @Override public IProduct createProduct() { return new Product(); } } interface I原创 2015-04-24 21:05:29 · 849 阅读 · 0 评论 -
(创建型模式一)单例模式
package com.eyugame.modle; /** * 饿汉式单利模式 * @author JYC506 * */ public class Single { private static Single single=new Single(); public Single getInstance(){ return single;原创 2015-04-24 20:53:38 · 803 阅读 · 0 评论 -
设计模式简单介绍
一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 二、设计模原创 2015-06-05 16:59:21 · 1010 阅读 · 0 评论