
设计模式
文章平均质量分 79
波波仔86
生活与技术并发!
展开
-
装饰器模式
装饰器模式 装饰器模式又称为包装(Wrapper)模式。装饰器模式以多客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 装饰器模式的结构 通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生子类来扩展,抑或是使用对象组合的方式。显然,直接修改对应的类的方式并不可取,在面向对象的设计中,我们应该尽量使用组合对象而不是继承对象来扩展和复用功能,装饰器模式就是基于对象组合的方式的。 装饰器模式以对客户端透明的方式动态地给一个对象附加上了更多的责任。换言之,客户端并不会角色对象在装饰前和装转载 2021-03-16 23:00:37 · 354 阅读 · 0 评论 -
模板模式
在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 介绍 意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 主要解决:一些方法通用,却在每一个子类都重新写了这一方法。 何时使用:有一些通用的方法。 如何解决:将这些通用算法抽象出来。 关键代码:在抽象类实现,其他步骤在子转载 2021-03-16 22:07:34 · 125 阅读 · 0 评论 -
策略模式
介绍 意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 主要解决:在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护。 何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。 如何解决:将这些算法封装成一个一个的类,任意地替换。 关键代码:实现同一个接口。 应用实例:1、诸葛亮的锦囊妙计,每一个锦囊就是一个策略。 2、旅行的出游...转载 2019-11-27 09:31:55 · 155 阅读 · 0 评论 -
代理模式
什么是代理模式 代理模式的定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用(控制对象访问)。通俗的来讲代理模式就是我们生活中常见的中介。 举个例子来说明:假如说我现在想买一辆二手车,虽然我可以自己去找车源,做质量检测等一系列的车辆过户流程,但是这确实太浪费我得时间和精力了。我只是想买一辆车而已为什么我还要额外做这么多事呢?于是我就通过中介公司来买车,他们来给我找车源,...转载 2019-11-03 20:07:40 · 184 阅读 · 0 评论 -
Header First设计模式——装饰者模式
我曾经以为应该用继承处理一切。后来领教到运行时扩展,远比编译时期的继承威力大。本章可以称为“给爱用继承的人一个全新的设计眼界”。我们即将再度探讨典型的继承滥用问题。在本章将会学到如何使用对象组合的方式,做到在运行时装饰类。一旦你熟悉了装饰的技巧,你将能在不修改任何底层代码的情况下,给你的(或别人的)对象赋予新的职责。 新的例题:星巴兹是以狂战速度最快而闻名的咖啡连锁店。...原创 2018-10-18 11:31:35 · 834 阅读 · 0 评论 -
单例模式
原文源自:http://www.tekbroaden.com/singleton-java.html 饿汉式 顾名思义,饿汉法就是在第一次引用该类的时候就创建对象实例,而不管实际是否需要创建。代码如下: 1 2 3 4 5 6 7 public class Singleton { private...转载 2018-10-18 20:09:09 · 116 阅读 · 0 评论 -
java工厂模式三种详解
原文源自:https://blog.youkuaiyun.com/llussize/article/details/80276627 工厂方法模式(Factory Method) 工厂方法模式分为三种: 1、普通工厂模式 就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。首先看下关系图: 举例如下:(我们举一个发送邮件和短信的例子) 首先,创建二者的共同接口: public in...转载 2018-10-16 17:08:52 · 302 阅读 · 0 评论 -
Java设计模式之观察者模式
原文源自:https://www.cnblogs.com/luohanguo/p/7825656.html 1、初步认识 观察者模式的定义: 在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。 大白话: 其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没有订阅就收不到信息。 2、这个模式的结构图 ...转载 2018-10-10 19:52:06 · 158 阅读 · 0 评论