设计模式
catch that elf
一辈子很短,努力的做好两件事就好;第一件事是热爱生活,好好的去爱身边的人;第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱;
展开
-
设计模式-工厂模式
Spring 中用到的设计模式Spring IOC 工厂、单例、装饰器Spring AOP 代理、观察者Spring MVC 委派、适配器Spring JDBC 模板方法工厂模式的历史由来在现实生活中我们都知道,原始社会自给自足(没有工厂)、农耕社会小作坊(简单工厂,民间酒坊)、工业革命流水线(工厂方法,自产自销)、现代产业链代工厂(抽象工厂,富士康)简单工厂模式简单工厂模式(Si...原创 2019-03-08 18:54:36 · 378 阅读 · 0 评论 -
设计模式-原型模式
原型模式原型模式(Prototype Pattern)是指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。个人理解:就是根据一个对象实例通过一定的方式去快速创建对象新实例。调用者不用调用任何构造函数也不用关心具体创建细节。原型模式属于创建性模式。原型模式主要使用场景:创建新对象时需要很多的赋值操作(比如几十次调用 set get 方法),或者构造方法执行、实例的初始化 都需要很...原创 2019-03-12 12:57:11 · 352 阅读 · 0 评论 -
设计模式-观察者模式
观察者模式的应用场景观察者模式(Observer Pattern)定义了对象之间的一对多依赖,让多个观察者对象同时监听一个主体对象,当主体对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新,属于行为型模式。观察者模式有时也叫做发布订阅模式。观察者模式主要用于在关联行为之间建立一套触发机制的场景。观察者模式在现实生活应用也非常广泛,比如:微信朋友圈动态通知、GPser 生态圈消息通知、邮件...原创 2019-03-19 18:50:13 · 357 阅读 · 0 评论 -
设计模式-装饰器模式
装饰者模式的应用场景装饰者模式(Decorator Pattern)是指在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式。装饰者模式在我们生活中应用也比较多如给煎饼加鸡蛋;给蛋糕加上一些水果;给房子装修等,为对象扩展一些额外的职责。装饰者在代码程序中适用于以下场景:1、用于扩展一个类的功能或给一个类添加附加职责。2、动态的给...原创 2019-03-19 18:26:09 · 384 阅读 · 0 评论 -
设计模式-适配器模式
适配器模式的应用场景适配器模式(Adapter Pattern)是指将一个类的接口转换成客户期望的另一个接口,使原本的接口不兼容的类可以一起工作,属于结构型设计模式。适配器适用于以下几种业务场景:1、已经存在的类,它的方法和需求不匹配(方法结果相同或相似)的情况。2、适配器模式不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品、不同厂家造成功能类似而接口不相同情况下的解决方案。有...原创 2019-03-19 17:40:17 · 363 阅读 · 0 评论 -
设计模式-模板模式
模板模式通常又叫模板方法模式(Template Method Pattern)是指定义一个算法的骨架,并允许子类为一个或者多个步骤提供实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤,属于行为性设计模式。模板方法适用于以下应用场景:1、一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。2、各子类中公共的行为被提取出来并集中到一个公共的父类中,从而避免代码...原创 2019-03-19 17:17:51 · 295 阅读 · 0 评论 -
设计模式-单例模式(二)单例的破坏及高级实现
反射破坏单例上篇文章中介绍的单例模式的构造方法除了加上 private 以外,没有做任何处理。如果我们使用反射来调用其构造方法,然后,再调用 getInstance()方法,应该就会两个不同的实例。现在来看一段测试代码,以 LazyInnerClassSingleton 为例public class LazyInnerClassSingletonTest { public static...原创 2019-03-10 13:30:50 · 397 阅读 · 0 评论 -
设计模式-单例模式(一)单例的几种基本实现方式
单例模式单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。单例模式是创建型模式。单例模式在现实生活中应用也非常广泛。例如,国家主席、公司 CEO、部门经理等。在 J2EE 标准中,ServletContext、ServletContextConfig 等;在 Spring 框架应用中 applicationContext;数据库的连...原创 2019-03-10 12:20:46 · 407 阅读 · 0 评论 -
设计模式-策略模式
策略模式策略模式(Strategy attern)是指定义了算法家族、分别封装起来,让它们之间可以互相替换,此模式让算法的变化不会影响到使用算法的用户。比如java接口和实现类其实就是一种策略模式,一个Dao接口可以有MysqlDaoImpl、OracleDaoImpldeng 等多个实现类,随时可以替换或新增一个实现类去完成具体操作。还有我们射击游戏魂斗罗中的枪有S、M、L多种类型 每种类型的...原创 2019-03-14 11:21:08 · 398 阅读 · 0 评论 -
设计模式-委派模式
委派模式的定义及应用场景委派模式不属于 GOF23 种设计模式中。委派模式(Delegate Pattern)的基本作用就是负责任务的调用和分配任务,跟代理模式很像(都会调用一个被代理对象/被委派对象去完成操作),可以看做是一种特殊情况下的静态代理的全权代理,但是代理模式注重对被代理对象的增强和保护,而委派模式注重分工明确(自己不做让指定的人去做指定的事)。委派模式的好处就是降低把逻辑下沉到各个...原创 2019-03-14 10:50:12 · 342 阅读 · 0 评论 -
设计模式-代理模式
代理模式(ProxyPattern)的定义也非常简单,是指为其他对象提供一种代理,以控制对这个对象的访问。代理对象在客服端和目标对象之间起到中介作用,代理模式属于结构型设计模式。使用代理模式主要有两个目的:一保护目标对象,二增强目标对象。静态代理:代理的代码是静态的。是我们手动完成的。 这里模拟实现分库保存。当我们保存一个订单信息时 根据订单的创建时间,保存到指定的数据库中。比如 创建时间 为...原创 2019-03-12 17:16:11 · 341 阅读 · 0 评论