设计模式
文章平均质量分 54
Bug开发攻城狮
自古,百无一用是深情,唯有套路得人心
展开
-
工厂模式
1.产品类 1.1产品的统一接口 /** *@Desc:产品的接口 *@authorzy *@date2016年6月21日下午4:40:33 */ publicinterfaceProduct{ /** *@Desc:获取具体的产品 ...原创 2016-06-27 17:14:50 · 16403 阅读 · 0 评论 -
java 生产者消费者模式
java的生产者消费者模式,有三个部分组成,一个是生产者,一个是消费者,一个是缓存。 这么做有什么好处呢? 1.解耦(去依赖),如果是消费者直接调用生产者,那如果生产者的代码变动了,消费者的代码也需要随之变动 2.高效,如果消费者直接掉生产者,执行时间较长的话,会阻塞,影响其他业务的进行 3.负载均衡,如果消费者直接调生产者,那生产者和消费者就得在一起了,日后业务量非常大的话,要想减轻服务器...原创 2017-04-27 15:27:01 · 18904 阅读 · 3 评论 -
观察者模式
1.观察者的抽象类和具体实现类 /** * @Desc:抽象观察者,观察对象出现新的变动即给出提示 * @author zy * @date 2016年8月18日下午3:26:03 */ public interface Observer { /** * @Desc:接收信息的方法 * @param message: * @author:zy * @versio...原创 2016-08-18 15:30:41 · 16262 阅读 · 0 评论 -
装饰模式
装饰模式(Decorator Pattern):动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活(不使用继承)。装饰模式是一种对象结构型模式。 java的IO模块,就大量的使用到了装饰模式。 简单业务下的代码 1.抽象组件 /** * 支付的抽象组件 * * @author Frank.Z * */ public abstract class...原创 2016-08-12 15:17:03 · 16284 阅读 · 1 评论 -
java动态代理的两种实现方式
一说到动态代理,我们第一个想到肯定是大名鼎鼎的Spring AOP了。在AOP的源码中用到了两种动态代理来实现拦截切入功能:jdk动态代理和cglib动态代理。两种方法同时存在,各有优劣。jdk动态代理是由java内部的反射机制来实现的,cglib动态代理是通过继承来实现的,底层则是借助asm(Java 字节码操控框架)来实现的(采用字节码的方式,给A类创建一个子类B,子类B使用方法拦截的技术...原创 2016-11-18 15:45:11 · 21944 阅读 · 0 评论 -
代理模式
1.代理抽象角色 public interface Subject { public void buyTickets(); } 2.具体的角色(铁路局/火车票代售点) /** * @Desc:铁路局售出火车票 * @author zy * @date 2016年8月16日上午11:26:01 */ public class RailwaysAdministr...原创 2016-08-16 13:33:06 · 2878 阅读 · 0 评论 -
组合模式
1.公司和部门的抽象类 /** * @Desc:部门的基类 * @author zy * @date 2016年8月12日上午11:11:39 */ public abstract class Department { public abstract void responsibility();//公司的职责 } /** * @Desc:公司的实体 * @author ...原创 2016-08-12 11:38:12 · 16162 阅读 · 2 评论 -
外观模式/门面模式
1.两个行为类 public class SubA { public void say(){ System.out.println("suba say a ...."); } } public class SubB { public void say(){ System.out.println("subb say b ...."...原创 2016-07-14 16:20:46 · 2780 阅读 · 0 评论 -
策略模式
1.行为类 具体的打折的计算的接口和实现类 public interface Discount { public Double calculatePrice(Double price); } public class ChilderDiscount implements Discount { @Override public Double calcul...原创 2016-07-14 16:35:24 · 16032 阅读 · 0 评论 -
java gof 设计模式 目录贴
java的设计模式,一般指的是Gof设计模式。 创建型模式(5个) 1.工厂模式 2.抽象工厂 3.单例模式 4.原型模式 5.建造者模式 6.简单工厂(补充,不在Gof 23设计模式中,但是使用频率很高) 结构型模式(7个) 1.适配器模式 2.桥接模式 3.组合模式 4.装饰模式 5.外观模式/门面模式 6.享元模式 7.代理模式 ...原创 2016-07-14 16:04:59 · 16465 阅读 · 0 评论 -
建造者模式
1.产品类 1.1产品的统一接口 /** *@Desc:产品的接口 *@authorzy *@date2016年6月21日下午4:40:33 */ publicinterfaceProduct{ /** *@Desc:获取具体的产品 ...原创 2016-06-28 10:24:52 · 16058 阅读 · 0 评论 -
原型模式
1.元素类-组件类 public class Attachement implements Serializable{ private Integer id; private BigDecimal price; public Integer getId() { return id; } public void setId(Integer id) { this.id ...原创 2016-06-28 10:30:21 · 16001 阅读 · 0 评论 -
单例模式
单例模式肯定有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 1.单例的实现 public class Singleton { private Singleton(){}; private static Singleton st = null; public stat...原创 2016-06-28 10:26:54 · 16209 阅读 · 1 评论 -
抽象工厂
抽象工厂,是生成一组相互关联的产品 比较于工厂方法,工厂方法是多个产品单个层次的产品,比如生产单独的墨水或者笔,这时候就很适合工厂方法,它没有维护组件之间的关系 假如,要生产一套文具,文具是由同一个系列的笔、墨、纸组成的,它们之间是相互关联的,中国的毛笔应该在宣纸上书写文字,中国的毛笔不能在英国的信纸上书写,因为信纸太薄了,这时候,就适合抽象工厂了 1. 笔工厂 public i...原创 2016-06-27 17:23:58 · 16160 阅读 · 0 评论 -
简单工厂模式
1.产品类 1.1产品的统一接口 /** *@Desc:产品的接口 *@authorzy *@date2016年6月21日下午4:40:33 */ publicinterfaceProduct{ /** *@Desc:获取具体的产品 *@author:zy ...原创 2016-06-27 17:18:30 · 16109 阅读 · 0 评论 -
模板模式
什么是模板模式? 模板模式中,一个抽象父类,有抽象方法和实现方法;它有多个子类,子类里实现了父类的抽象方法,但是,最终的执行还是父类里实现的方法 为什么要使用模板模式? 模板模式使用很广泛的。 在编程领域,Hibernate的HibernateTemplate对象就是一个典型的例子,hibernateTemplate在编程领域,Hibernate的HibernateTemplate对象就是一个典型...原创 2018-09-27 18:31:06 · 20454 阅读 · 0 评论