设计模式
红豆和绿豆
这个作者很懒,什么都没留下…
展开
-
设计模式--发布者与订阅者
Spring实现的发布者与订阅者 是观察者设计模式的一个扩展。观察者设计模式 目标 观察者 事件三者之间是耦合在一起的,目标里面包含观察者的集合,观察者需要自己注入到目标中,当目标发生变化的时候,则会通知观察者集合,完成不同观察者的操作发布者与订阅者的设计模式发布者 订阅者 事件 事件...原创 2020-03-05 13:22:57 · 484 阅读 · 0 评论 -
设计模式--动态代理
package designpattern.dynamicagent;public interface MyInterface { public String helloWorld();}package designpattern.dynamicagent;public class MyInterfaceImpl implements MyInterface{ ...原创 2020-03-05 10:53:49 · 146 阅读 · 0 评论 -
设计模式--观察者
JDK自带观察者实现package designpattern.observable.jdk;import java.util.Observable;/** * 发布者就是目标 */public class Publisher extends Observable { private int number; public int getNumber() {...原创 2020-03-05 10:51:06 · 201 阅读 · 0 评论 -
设计模式--池技术与策略模式
package designpattern.pool;import designpattern.staticagent.MyConnecntion;import java.sql.Connection;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;public clas...原创 2020-03-05 10:46:20 · 212 阅读 · 0 评论 -
设计模式--静态代理
package designpattern.staticagent;import java.sql.*;import java.util.Map;import java.util.Properties;import java.util.concurrent.Executor;/** * 静态代理 */public class MyConnecntion implements ...原创 2020-03-05 10:45:17 · 131 阅读 · 0 评论 -
设计模式--回调
package designpattern.callbcak;public interface CallBack<T extends Request,Q extends Response>{ default void before(T reqest){}; Q execute(T reqeust); default void after(T req...原创 2020-03-05 10:44:09 · 150 阅读 · 0 评论 -
设计模式---构建者
package designpattern.builder;public interface VoucherStatusBuilder { void build(VoucherData voucherData);}package designpattern.builder;public enum VoucherStatusEnum { UN_USE("UN_U...原创 2020-03-05 10:42:36 · 157 阅读 · 0 评论 -
Java中工厂、配置文件和反射学习
学习程序的最好方式就是编代码实现它,这里我们假设一个场景为要开一个晚会,晚会的流程为:1.晚会开始;2.唱歌;3.舞蹈;4.小品;5结束。一、传统方法1、新建Java项目:party2、在party项目中新建类EveningParty[java] view plain copy package com.gmail.ls转载 2016-09-12 14:37:27 · 483 阅读 · 0 评论 -
设计模式之---观察者模式
观察者模式:通过使用类之间的一对多的关系,当目标对象满足一定的条件的情况下,就可以通知观察者,让观察者做出相应的反应。例子: (1)通用的观察者的模板(2) 测速器是目标对象,警车是观察者。代码如下:package observer;public interface Observer {public void update();}pa原创 2015-12-01 13:24:08 · 337 阅读 · 0 评论 -
设计模式之--适配器模式
适配器模式:首先写接口,让一个抽象类实现该接口,但不写具体的实现,让具体的类来继承这个抽象类。重写自己想要重写的方法。例如:有一个windows窗口的接口,我们想设计自己独特的窗口,但是不想全部实现该接口的全部功能,所以可以使用适配器模式。代码如下:package adaptor;public interface Windows {public void原创 2015-12-01 12:48:06 · 256 阅读 · 0 评论 -
设计模式之--模板设计模式
模板设计模式:在一个抽象类中,一个方法是抽象的,一个方法是具体的,在这个具体的方法方法中,去调用这个抽象的方法,这些抽象的方法由子类具体的实现,从而实现不同人有不同的表现。下面一个例子就是:每个人的一生都是从出生到死亡,但是每个人的具体的细节是不一样的。但是人的一生就是一个模板。package template;public abstract class Life {原创 2015-11-30 14:28:41 · 280 阅读 · 0 评论 -
设计模式之---装饰模式
装饰模式:就是扩展一个类的功能,在原来类的基础上增加一个修饰类,增强原来来的功能。例子:java中的流,就是使用装饰模式,不断增加新的读取的方法。package decorator;import java.io.File;public abstract class InputStream {public abstract void rea原创 2015-12-01 15:19:30 · 301 阅读 · 0 评论 -
简单工厂的原理以及一个样例
1、简单工厂模式(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。我们经常使用的powerDesinger 创建类图下面这个例子原创 2015-11-20 15:38:56 · 495 阅读 · 0 评论 -
设计模式之--抽象工厂
抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,它是一种对象创建型模式。举例子说明。代码如下:package abstractfactory;public interface Fruit{public String getName();}pac原创 2015-11-26 15:27:24 · 315 阅读 · 0 评论 -
单例模式
单例模式:就是确保对象只有一个。满足的条件:(1)原创 2015-11-20 14:59:22 · 400 阅读 · 0 评论 -
设计模式之--原型模式
原型模式:就是通过原来的对象克隆一个跟自己一样的对象。在java中只需要改对象 重写clone方法就可以在内存中创建一个新的对象,改新的对象与原来的对象的内存地址是不一样的。克隆分为浅克隆还是深克隆浅克隆:就是将原来对象的基本类型的属性复制到新的对象中去,但是引用类型的变量不会复制。深克隆:该对象需要implements Serializable接口,这个对象的所有属性都可以克隆到原创 2015-11-26 15:58:44 · 292 阅读 · 0 评论 -
设计模式之--工厂方法
简单工厂的工厂类的功能,里面的业务逻辑很复杂,如果增加一种新的产品,需要修改代码,所以提出了工厂方法的设计模式,就是每一个具体的产品都有一个对应的工厂类去产生这个对象。我们在简单工厂的基础上,扩展工厂方法。具体的代码如下:package factorymethod;public interface Fruit{ void grow(); vo原创 2015-11-26 14:48:39 · 322 阅读 · 0 评论 -
设计模式之 --策略模式
用大白话说就是,将一个接口或者一个抽象类作为另外一个函数的参数,这种编程方式就是策略模式。举个简单的策略模式的例子,客户端向画画,传入不同图案的参数,就会显示不同的图案。代码如下:package celue;public abstract class Picture {public abstract void draw();}package ce原创 2015-11-29 14:42:06 · 264 阅读 · 0 评论 -
设计模式之--代理模式
代理模式:就是自己不去真正的实现,代用别人的实现,并且来扩充这个被代理的类的功能。目标:我向创建一个自己的数据库连接池,因此需要增加一个控制的变量,通过该变量我们就可以控制数据库的连接。但是我们自己不想真正的实现Connection接口,因此我们可以使用mysql或者oracle 已经实现的Connection类,进行代理。如下代码就是代理的MyConnection类的实现:p原创 2015-11-29 15:38:27 · 310 阅读 · 0 评论 -
设计模式之--动态代理
动态代理,就是一个类首先是接口或者抽象类,这个类被具体类实现,我们想生成该类的代理,在产生代理的时候,可以在产生的过中动态的增加业务逻辑。我们使用JDK自带的InvocationHandler 和Proxy类来实现动态代理。如果被代理的类没有实现接口,我们使用cglib 直接生成二进制的代码。Spring的AOP就是使用的这个接口来实现的面向切面编程。以下是一个例子,在正常的业务前原创 2015-11-29 16:01:43 · 285 阅读 · 0 评论 -
设计模式之--责任链模式
责任链模式:就是自己调用自己,就像是一个链条一样。例子:实现一个将一个对象的属性拼写成一个sql语句。代码如下:package zerenlian;public class SqlCreater {private String name;private SqlCreater next;public SqlCreater(String原创 2015-12-01 13:45:52 · 364 阅读 · 0 评论 -
设计模式是什么
http://blog.csdn.net/lovelion/article/details/7420863 俗话说:站在别人的肩膀上,我们会看得更远。设计模式的出现可以让我们站在前人的肩膀上,通过一些成熟的设计方案来指导新项目的开发和设计,以便于我们开发出具有更好的灵活性和可扩展性,也更易于复用的软件系统。 设计模式的一般定义如下:设计模式(De转载 2015-11-20 13:47:10 · 910 阅读 · 0 评论