设计模式
自由飛祥
初来乍到小菜鸟
展开
-
Delegate Pattern 委派模式
委派模式不属于GoF 23种设计模式。委派模式的基本作用就是负责任务的派遣和调用,跟代理模式很像,可以看成一种特殊情况下的静态的全权代理。但是,代理模式注重过程,委派模式注重结果。委派模式在Spring种的应用场景非常多,我们最熟悉的DispatcherServlet就用到了委派模式。文中会简单模仿下DispatcherServlet的实现。在现实生活中也常有委派模式的发生场景,如 Boss ...原创 2019-08-18 16:56:40 · 179 阅读 · 0 评论 -
装饰器模式 Decorator Pattern
装饰者模式(Decorator Pattern)是指在不改变元祐对象的基础上将功能附加到对象上,提供了比继承更有弹性的方案(即扩展原有对象的功能),属于结构型模式。装饰者模式适用于以下场景:扩展一个类的功能或给一个类添加附加的职责。 动态的给一个对象添加功能,这些功能可以再动态地撤销。以日常生活中一个小例子来讲解装饰者模式的应用。如:我们在平时的上班的早上,很多人可能都是起的比较晚,走在路...原创 2019-09-08 16:45:26 · 155 阅读 · 0 评论 -
Adapter Pattern 适配器模式
适配器模式将某个类的接口转化成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容问题,约摸有一种亡羊补牢的感觉。主要分三类:类的适配器模式、对象的适配器模式、接口的适配器模式。一、类的适配器模式1、创建原始类public class Source { public void method1(){ System.out.println("Sourc...原创 2019-09-04 11:08:13 · 105 阅读 · 0 评论 -
Facade Pattern外观模式
外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。举个例子,比如我们最习以为常吃饭,如果是自己做的话,那么需要经历买菜、洗菜、切菜、炒菜、吃、善后工作等,这几个顺序是肯定不能乱的,而且缺一不可。刚上了一天的班想吃个饭还要这么麻烦,想想就累。那么怎么解决呢?简单的做法...原创 2019-08-22 16:25:22 · 116 阅读 · 0 评论 -
Singleton Pattern单例模式总结
在我们平时工作 或者 面试的时候,单例模式算是出现最频繁的一种设计模式了,本文整理了单例模式的各种实现1、饿汉模式【简而言之,就是不管你用不用,我先创建出来】public class HungrySingleton { private static final HungrySingleton hungry = new HungrySingleton(); privat...原创 2019-08-12 22:14:39 · 124 阅读 · 0 评论 -
Proxy Pattern 代理模式
代理模式定义:是指为其他对象提供一种代理,以控制这个对象的访问。使用代理模式的主要目的有两个,其一是保护目标对象,其二是增强目标对象。一、静态代理比现在社会上火热的催婚问题,就可以用代理模式展示出来:1、定义一个人类接口,内含一个寻找真爱的行为。public interface Person{ public void findLove();}2、孩子要找对象,实现P...原创 2019-08-15 22:00:14 · 105 阅读 · 0 评论 -
Template Method Pattern 模版方法模式
模版方法模式又称为模版模式,是指定义了一个算法的骨架,并允许子类为一个或者多个步骤提供实现。模版模式使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤,属于行为性设计模式。模版模式适应于以下场景:一次性实现一个算法的不变部分,并将可变的行为交给子类来实现。 个子类中公共的行为被提取出来并集中到一个公共的父类中,从而避免代码重复。我们的日常生活中,此类的应用场景非常多,比如办理...原创 2019-08-24 11:44:27 · 131 阅读 · 0 评论 -
Factory Pattern 工厂模式总结
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂模式分为三种:简单工厂模式、工厂方法模式、抽象工厂模式。一、简单工厂模式<对象抽离接口>简单工厂模式适...原创 2019-08-14 21:49:06 · 103 阅读 · 0 评论 -
Strategy Pattern 策略模式
策略模式是指定义了算法家族并将其封装起来,让它们之间可以相互替换,而不影响使用此算法的用户。策略模式的应用场景如下 系统中有很多类,这些类之间区别仅仅在于行为不同。 一个系统需要动态的在几种算法中选择其中的一种来执行。 举个例子,基本所有的人都有在网上买过东西(比如 服装、书、车票等),在我们选中某个或者某些商品之后,选择付款时会让我们选择付款方式,如:支付宝、银联、微信等...原创 2019-08-18 19:35:43 · 119 阅读 · 0 评论 -
观察者模式Observer Pattern
观察者模式定义了对象之间的一对多依赖,让多个观察者对象同时监听一个主体,当主体对象发生变化时,它的所有观察者都会收到通知。观察者模式也叫发布订阅模式,主要用于在关联行为之间建立一套触发机制的场景。下面通过我们平时最常用的键盘鼠标相关的监听事件作为例子,来熟悉观察者模式。一、首先创建Event类public class Event {// 事件源,事件是由谁发起的,保存起来 ...原创 2019-09-15 17:32:06 · 176 阅读 · 0 评论