![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 58
江海
脚踏实地,不负春光
展开
-
java设计模式-门面模式
名词解释Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to useFacade Pattern又叫外观模式,提供一个统一接口或者类,用来访问子系统中的一系列接口,其主要特征是定义一个高层接口,让子系统更加容易使用,属于结构型模式应用场景门面模式主原创 2021-02-24 00:43:27 · 230 阅读 · 0 评论 -
java设计模式——建造者模式
名词解释Builder Pattern将一个复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示,属于创建型模式。使用建造者模式对于用户而言只需要指定需要建造的类型和内容就可以获得对象,建造过程及细节不需要了解,其根本目的是解耦过程和部件。适用场景适用于创建对象需要很多步骤,且步骤的顺序不一定固定。为了达到灵活创建对象的目的,可以使用建造者模式。另外,如果采用链式编程的写法,也可以是代码更简洁一些。写法创建一个静态内部类 Builder,然后将所用参数从外部类copy到原创 2021-02-24 00:01:37 · 98 阅读 · 0 评论 -
java设计模式——装饰者模式
名词解释Decorator Pattern指在不改变原有对象的基础之上,动态给一个对象添加一些额外的职责,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式。应用背景我们通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势必生成很多子类,增加系统的复杂性,同时,使用继承实现功能拓展,我们必须可预见这些拓展功能,这些功能是编译期就确定了,是静态的...原创 2019-08-22 16:37:40 · 127 阅读 · 0 评论 -
java设计模式——原型模式
名词解释Prototype Pattern是指原型实例指定创建对象的种类,并且通过拷贝这些原型的属性和值来创建新的对象。应用场景类初始化消耗资源较多。new 产生的一个对象需要非常繁琐的过程(比如数据准备、访问权限等)构造函数比较复杂。循环体中生产大量对象时。写法简单写法常规的简单写法是先定义一个接口public interface Prototype{ Pr...原创 2019-08-12 23:32:00 · 170 阅读 · 0 评论 -
java设计模式——观察者模式
名词解释Observer Pattern(又叫发布订阅模式)定义了对象之间的一对多依赖,让多个观察者对象同时监听一个主体对象,当主体对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新,属于行为型模式。写法JDK自带以订阅报纸为例,当人们订阅了报纸后,只要有新的报纸一发布,订阅了该报纸的人就能立即受到通知。报纸 Newspaper 类:public class Newspa...原创 2019-08-21 16:48:03 · 177 阅读 · 0 评论 -
java设计模式——单例模式
名词解释保证一个类在任何情况下都绝对只有一个事例,要隐藏所有的构造方法常见用例servletContextservletConfigApplicationContextDBPool写法分类饿汉式以空间换时间,不存在线程安全问题缺点:在类初始化的时候就已经创建了对象,浪费资源写法1:public class HungrySinglton { private ...原创 2019-08-12 19:16:48 · 122 阅读 · 0 评论 -
设计模式七大原则
开闭原则Open-Closed Principle OCP最基础的原则,对扩展开放,对修改关闭强调的是 用抽象构建框架,用实现扩展细节 ,可以提高软件系统的可复用性和可维护性依赖倒置原则Dependence Inversion Principle, DIP程序要依赖于抽象接口,不要依赖于具体实现。通过抽象,使得各个类或者模块不互相影响,实现松耦合,实际上就是依赖注入,而注...原创 2019-08-12 14:51:04 · 103 阅读 · 0 评论 -
java设计模式——适配器模式
名词解释Adapter Pattern将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份应用背景我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自类的接口,但是如果我们没有源代码,或者,我们不愿意为了一个应用而修改各自的接口。 怎么办?使用Adapter,在这两种接口之间创建一个混合接口(混血儿)....原创 2019-08-20 15:24:35 · 125 阅读 · 0 评论 -
java设计模式——委派模式
名词解释Delegate Pattern进行任务的调度和分配,属于行为型模式委派模式跟代理模式很像,可以看做是一种特殊情况下的静态代理的全权代理,但是代理模式注重过程,而委派模式注重结果。委派模式不属于23种经典设计模式以 Delegate 结尾或者以 Dispatcher 开头的类,通常都是策略模式写法简单写法简单的写法,就是直接从委派模式的含义出发,让一个委派者来决定要将任...原创 2019-08-20 13:40:00 · 232 阅读 · 0 评论 -
java设计模式——模板模式
名词解释Template Method Pattern,又叫 模板方法模式指定义一个算法的骨架,并允许子类为一个或者多个步骤提供实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤,属于行为性设计模式适用场景一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。各子类中公共的行为被提取出来并集中到一个公共的父类中,从而避免代码重复实现思路为了达...原创 2019-08-20 13:37:40 · 98 阅读 · 0 评论 -
java设计模式——工厂模式
介绍由一个地方(工厂)来统一创建对象,保证创建对象的统一性,更符合标准化编程的思想简化调用逻辑分类简单工厂优点简单,一个类就能直接返回所需要的所有的,根据不同参数就可以创建不同对象缺点违背开闭原则,不利于创建复杂的对象,不利于扩展工厂方法只定义一个创建对象的 接口 ,将具体的创建过程移交给具体的实现类优点符合开闭原则,提高了系统的扩展性缺点类的个数容易过多,多了之后对调...原创 2019-08-20 13:36:08 · 124 阅读 · 0 评论 -
java设计模式——策略模式
名词解释Strategy Pattern定义一系列算法,把它们一个个封装起来,并且使它们之间可以互相替换,此模式让算法的变化不会影响到使用算法的用户应用场景系统中有很多类,而他们的区别仅仅在于他们的行为不同一个系统需要动态地在几种算法中选择一种写法策略模式的写法很简单,其实就是先定义一个接口,然后让不同的算法来分别实现接口,这样在调用算法的地方,直接选择不同的算法实现类就可以...原创 2019-08-20 13:35:00 · 156 阅读 · 0 评论 -
java设计模式——代理模式
名词解释代理模式(ProxyPattern)是指为其他对象提供一种代理,以控制对这个对象的访问。代理对象在客服端和目标对象之间起到中介作用。代理模式属于结构型设计模式。使用代理模式主要有两个目的:一保护目标对象,二增强目标对象。写法分类静态代理先定义一个接口Dancerpublic interface Dancer { void dance();}现在有个 S...原创 2019-08-14 13:17:48 · 218 阅读 · 0 评论