设计模式
九月木码
这个作者很懒,什么都没留下…
展开
-
Spring中编程思想总结
AOP:面向切面编程 动态代理只是AOP的一种技术实现手段,AOP 是一种编程思想,Aspect切面:由某几个本来不相干的东西,组到一块去形成已给到新的产品,切面最关键的就是解耦。 切面不仅仅有增强功能,还有解耦功能,指定规则的功能。例如:expretion:切面表达式com.csdn.*.service.** 就是指定一个规则,与其说是面向切面编程,还不如说是面向规...原创 2020-01-15 11:36:07 · 293 阅读 · 0 评论 -
观察者模式
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象 都得到通知并被自动更新。 Spring 中 Observer 模式常用的地方是 Listener 的实现。如 ApplicationListener。归类 特点 穷举 行为模式 一般由两个对象组成:发布者和订阅者(观察者)。 观察者通常有一个回调...原创 2020-01-14 16:23:27 · 114 阅读 · 0 评论 -
装饰器模式
Decorator 装饰者模式,又叫包装器模式。为了某个实现类在不修改原始类的基础上,进行动态的覆盖或者增加方法该实现保持跟原有类的层级关系,装饰模式,实际是一种非常特殊的适配器模式。应用场景:如java 中IO流的包装 //虽然DataInputStream 功能更加强大 //DataInputStream同样实现InputStream...原创 2020-01-13 16:51:12 · 108 阅读 · 0 评论 -
适配器模式
适配器模式的主要目的就是为了兼容,即不改变原来的代码,也能兼容新的需求。 老系统运行了很久比较稳定,为了保持其稳定性,不便再去修改原来的代码,但是又要为了兼容新的需求 或标准,我们不得不去系统再做些文章。(向下兼容)使用场景:登录 用户名、密码 验证用户名密码的有效性---》把登录结果保存到session中,--->写入到浏览器cookie 随...原创 2020-01-13 11:36:00 · 144 阅读 · 0 评论 -
委派模式
委派模式不属于23种设计模式之一,是面向对象设计模式中常用的一种模式,这种模式的原理为类B 和 类A是两个相互没有任何关系的类,B具有和A 一模一样的方法和属性,B好像就是一个受A 授权委托的一个中介。第三方代码不需要知道A 的存在,也不需要和A 发生直接的联系,通过B 就可以直接使用A 的功能,这样既能够使用到A 的各种功能,又能很好的将A 保护起来了,一举两得。归类 特...原创 2020-01-10 10:56:28 · 106 阅读 · 0 评论 -
模板模式
模板模式通常又叫模板方法模式(Template Method) 举例:饮料的制作步骤1、加原料 2、烧水 3、加工 4、混合 策略模式的特点:主流程不能打断,具体实现可修改 策略模式的典型应用:JDBCTemplatepublic class JdbcTemplate { private DataSource dataSource; publi...原创 2020-01-09 11:30:18 · 161 阅读 · 0 评论 -
策略模式
策略模式简介: 策略模式定义算法,分别封装起来,让他们可以相互替换,此模式的目的是让算法的变化独立于使用方法的用户。(比如:支付接口的选择(支付宝,京东白条,微信支付,银联卡....)),策略模式关心的是我们如何去选择,最终的结果都是一样的 策略模式的应用:1、比较器比较算法的定义 2、支付接口的调用 3、爬虫爬不同网站时使用不同策略但最后都返回相同格式的json...原创 2020-01-06 21:53:04 · 98 阅读 · 0 评论 -
代理模式
代理模式介绍 代理模式中有代理角色和被代理角色(目标对象)。由被代理角色,来做关键事情。代理角色通常来说会持有被代理角色的对象引用(以便于代理角色完成工作之前,或者之后能找到被代理对象 ) 应用场景:为其他对象提供一种代理以控制对这个对象的访问。从结构上来看和 Decorator 模式类似, 但 Proxy 是控制,更像是一种对功能的限制,而 Decorator...原创 2020-01-05 21:53:43 · 124 阅读 · 0 评论 -
原型模式
原型类:DTO、VO、POJO、Entity 数据库表中查询出来的对象会赋值给DTO,把DTO中的值赋值给VO再把VO 中的值传到view中去,会经过一个复制(要把DTO 中的么一个属性的值都赋值给VO中的每一个属性的值属性名称相同,属性类型相同)的过程。 Apache的BeanUtils会提供一个复制功能,是使用反射去实现的(就是原型模式的实现) Java推荐cl...原创 2020-01-04 18:08:51 · 86 阅读 · 0 评论 -
单例模式
概念 单例模式是一个类模板,在整个系统运行过程中,有且只有一个实例,且只能New一个。保证单例的技术方案1、饿汉式 在使用单列之前就产生了,不管你用不用都先new 出来,避免线程安全。(用的少,不存在线程安全问题)public class Hungry { //私有构造方法 private Hungry(){} //代码执行顺序 ...原创 2019-12-26 22:19:16 · 123 阅读 · 0 评论 -
工厂模式
工厂模式的意义:让对象的创建变得简单,用户只需要把需求给到工厂,工厂就能创建一个对象。简化对象的创建过程。 修改对象很方便,只要修改工厂中的创建方式即可,而调用者完全不用修改。工厂demopackage factoryPattern;public interface Milk { /** * 获取一个标准产...原创 2019-12-18 22:26:36 · 97 阅读 · 0 评论 -
《JAVA与模式》之适配器模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述适配器(Adapter)模式的: 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式的用途 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的电源插座却只有两极,没有地极。电源插座与笔记本电脑的电源插头...原创 2019-02-14 15:15:38 · 118 阅读 · 0 评论 -
《JAVA与模式》之装饰模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述装饰(Decorator)模式的: 装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。装饰模式的结构 装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情况下,将对象的功能加...原创 2019-02-14 21:06:51 · 237 阅读 · 0 评论 -
《JAVA与模式》之代理模式
代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。代理模式的结构 所谓代理,就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式类图如下: 在代理模式中的角色: ● 抽象对象角色:声明了目标对象和代理对象的...原创 2019-02-15 21:12:00 · 116 阅读 · 0 评论 -
Java设计模式1:设计模式概论
计模式是什么 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易地被他人理解、保证代码可靠性。毫无疑问,设计模式于己于人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石脉络,如同大厦的结构一样。总体来说,设计模式分为3大类总共23种:1、创建型模式,共...原创 2019-02-12 11:03:16 · 171 阅读 · 0 评论 -
《JAVA与模式》之简单工厂模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述简单工厂模式的:简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。 那么简单工厂模式是在什么场景下使用呢,下面就以本人的理解举例说明: 就拿登录功能来说,假如应用系统需要支持多种登录方式如:口令认证、域...原创 2019-02-12 16:20:52 · 109 阅读 · 0 评论 -
《JAVA与模式》之工厂方法模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述工厂方法模式的: 工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。 工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。那么工厂方法模式是在什么场景下使用呢,下面就以本人的理解举例说明: 相信很多...原创 2019-02-13 11:23:30 · 105 阅读 · 0 评论 -
《JAVA与模式》之抽象工厂模式
每一个模式都是针对一定问题的解决方案。抽象工厂模式与工厂方法模式的最大区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则需要面对多个产品等级结构。 在学习抽象工厂具体实例之前,应该明白两个重要的概念:产品族和产品等级。 所谓产品族,是指位于不同产品等级结构中,功能相关联的产品组成的家族。比如AMD的主板、芯片组、CPU组成一个家族,Intel的主板、芯片组、C...原创 2019-02-13 15:36:07 · 113 阅读 · 0 评论 -
《JAVA与模式》之单例模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述单例模式的: 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。单例模式的结构 单例模式的特点:单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。 饿汉式单例类public class EagerSingl...原创 2019-02-13 16:33:52 · 94 阅读 · 0 评论 -
《JAVA与模式》之建造模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述建造(Builder)模式的: 建造模式是对象的创建模式。建造模式可以将一个产品的内部表象(internal representation)与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。产品的内部表象 一个产品常有不同的组成成分作为产品的零件,这些零件有可能是对象,也有可能不是对象,它们通常又叫做...原创 2019-02-13 18:43:43 · 198 阅读 · 1 评论 -
《JAVA与模式》之观察者模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述观察者(Observer)模式的: 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对...原创 2019-02-14 17:14:10 · 102 阅读 · 0 评论