
设计模式
文章平均质量分 74
设计模式
爱上口袋的天空
一步一流年,止不住的脚步,挽不回的青春!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式之外观模式
外观模式:提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。转载 2023-06-18 22:10:41 · 443 阅读 · 0 评论 -
设计模式之命令模式
命令模式:将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。(同时也支持可撤销的操作)转载 2023-06-18 21:42:55 · 400 阅读 · 0 评论 -
设计模式之装饰者模式
装饰器模式(DecoratorPattern):允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。转载 2023-06-11 22:37:49 · 205 阅读 · 0 评论 -
设计模式之观察者模式
建立一个气象观测站,并且这个气象观测站暂时有三种布告板,分别显示:目前的状况、气象统计、简单的预报。实现观察者接口(java.util.Observer),然后调用Observer对象的 addObserver()方法。主题如果想推(push)数据给观察者,可以把数据当为数据对象传送给notifyObservers(Obiect arg)方法。否则,观察者就必须从主题中拉(pull)数据。:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。转载 2023-06-11 15:38:14 · 430 阅读 · 0 评论 -
设计模式之策略模式
重构后,类分为:鸭子子类继承Duck、飞行行为实现FlyBehavior接口、呱呱叫行为实现QuackBehavior接口。描述事情的方式也从“一组行为”改成“一族算法”,算法表示鸭子能做的事情(不同的叫声和不同的飞行方式)。每一个鸭子都有一个FlyBehavior和QuackBehavior,飞行和叫声行为都由其行为具体实现类实现。当两个类结合起来一起使用,如同测试类中,即是组合(composition)。这种方式和继承的区别是,鸭子子类的行为不是继承而来的,而是和适当的行为对象组合而来。转载 2023-06-10 15:36:45 · 292 阅读 · 0 评论 -
建造者(Builder)模式 的若干使用场景
1.场景一 如果我们需要将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示的意图时,我们可以使用 Builder模式,又叫生成器模式。如果我们用了Builder模式,那么用户就只需要指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需要知道了。 比如现在我们有一个这样的使用场景,需要在屏幕上画小人,人要有头手脚,要画不同的人,胖的小人,瘦的小人,矮的小人。按照通常的写法,会有很多的样板代码,画人的头,画人脚手,如果一不小心,非常容易缺胳膊少腿...转载 2021-04-01 21:59:13 · 1299 阅读 · 0 评论 -
设计模式之抽象工厂模式
以服装举例来说,在很久之前,服装都是有用户自己在家里自产自;随着需求的提升,就有了专门的工厂来生产服装,也就有了简单工厂;随着用户对服装个性化的差异性需求提升,简单工厂越做越大,实现将产品根据不同的款式由不同的工厂生产,总厂只负责定制服装的规范,这就有了工厂方法;但是随着人们对服装的要求越来越高,他们不满足衣服,现在还希望工厂生产鞋子、帽子等其他副产业,工厂再次扩容,不再生产单一的服装,还需要生产关于服装方面的多元化产品,这也就是抽象工厂模式。转载 2021-03-29 09:43:31 · 527 阅读 · 0 评论 -
设计模式之工厂方法模式
创建型模式之工厂方法模式1. 简介工厂方法模式(Factory Method Pattern)是一种将创建对象的方法抽象化到抽象父类或者接口中, 然后实际的创建对象的逻辑交给子类去完成的一种模式。简单来说,就比如服装行业,大工厂只负责设计衣服的版面(建立生产衣服的规范),具体生产衣服需要由子工厂自己实现。2. 代码展示场景描述:此时, 我们需要建立一个支付服务体系。 消费者需要什么支付服务就从工厂类中获取对应的支付服务就行。父工厂负责建立创建支付服务的规范,具体的支付服务工转载 2021-03-28 17:40:52 · 316 阅读 · 0 评论 -
设计模式之简单工厂模式
这里使用解决方案二演示:转载 2021-03-28 16:21:46 · 573 阅读 · 0 评论 -
设计模式的分类
设计模式的分类设计模式分为三种类型。创建型模式创建型模式(Creational Pattren)处理对象创建的设计模式。重点关注的是对象的创建。单例模式 简单工厂模式 工厂方法模式 抽象工厂模式 原型模式 建造者模式结构型模式结构型模式(Structural Pattern)处理类或者对象之间的布局关系的设计模式。重点关注的是类或者对象的结构。适配器模式 桥接模式 装饰模式 组合模式 外观模式 享元模式 代理模式行为型模式行为型模式(Beh转载 2021-03-28 14:19:39 · 93 阅读 · 0 评论 -
设计模式七大原则之合成复用原则
设计模式七大原则之合成复用原则什么是合成复用原则合成复用原则(Composite Reuse Principle), 尽量使用组合或者聚合的方式而不是继承达到软件复用的原则.继承会增加对象间的耦合性, 继承称之为白箱复用, 相当于把所有的实现细节暴露给子类. 组合/聚合称之为黑箱复用, 对类以外的对象时无法获取到实现细节的.合成复用原则的目的减少对象间的依赖, 是系统更加灵活.错误代码演示类图代码演示package com.inconspicuousy.princ转载 2021-03-28 12:26:20 · 188 阅读 · 0 评论 -
java面向对象的七大设计原则简介
1.简述设计模式常用的七大原则有:单一职责原则 接口隔离原则 依赖倒转(倒置)原则 里氏替换原则 开闭原则 迪米特法则 合成复用原则2.七大原则之间的关系七大原则之间并不是相互孤立的,彼此间存在着一定关联,一个可以是另一个原则的加强或是基础。违反其中的某一个,可能同时违反了其余的原则。开闭原则是面向对象的可复用设计的基石。其他设计原则是实现开闭原则的手段和工具。一般地,可以把这七个原则分成了以下两个部分:设计目标:开闭原则、里氏代换原则、迪米特原则设计方法:单一原创 2021-03-28 09:40:44 · 161 阅读 · 0 评论 -
JAVA设计模式七大原则之:(一)开闭原则
一、定义 开闭原则(Open-Closed Principle, OCP)是指一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 强调的是用抽象构建框架,用实现扩展细节。 开闭原则,是面向对象设计中最基础的设计原则。它指导我们如何建立稳定灵活的系统。 例如:我们版本更新,尽可能不修改原代码,但是可以增加新功能。二、优点 1.保持软件产品的稳定性 开闭原则要求我们通过保持原有代码不变,添加新代码来实现软件的变化,因为不涉及原代码的改动,这样可以避免为实现新功能而改坏线转载 2021-03-09 09:35:52 · 746 阅读 · 0 评论 -
设计模式之装饰器模式及应用场景-
一、概述装饰器模式作用是针对目标方法进行增强,提供新的功能或者额外的功能。不同于适配器模式和桥接模式,装饰器模式涉及的是单方,和代理模式相同,而且目标必须是抽象的。而实际上,装饰器模式和代理模式的实现方式基本一致,只在目标的存在上有些差别,这个后面我们具体讲述。二、初步分析上面提到了两点:涉及的是单方 目标是抽象的我们来想一下,所谓单方主要指的是在整个装饰器模式中不存在双方调用,要解决的也不是双方调用的问题,而是解决单方提供对外服务的问题,这个单方在自行对外提供服务时,功能不足,转载 2020-09-22 15:28:25 · 1451 阅读 · 0 评论 -
设计模式之适配器模式及应用场景
适配器就是一种适配中间件,它存在于不匹配的二者之间,用于连接二者,将不匹配变得匹配,简单点理解就是平常所见的转接头,转换器之类的存在。 适配器模式有两种:类适配器、对象适配器、接口适配器 前二者在实现上有些许区别,作用一样,第三个接口适配器差别较大。1、类适配器模式: 原理:通过继承来实现适配器功能。 当我们要访问的接口A中没有我们想要的方法 ,却在另一个接口B中发现了合适的方法,我们又不能改变访问接口A,在这种情况下,我们可以定义一个适配器p来进行中转,这个适配器p要实现我们访转载 2020-09-22 14:23:38 · 2673 阅读 · 0 评论 -
设计模式之模板模式及使用场景
模板模式,顾名思义,就是通过模板拓印的方式。 定义模板,就是定义框架、结构、原型。定义一个我们共同遵守的约定。 定义了模板,我们的剩余工作就是对其进行充实、丰润,完善它的不足之处。 定义模板采用抽象类来定义,公共的结构化逻辑需要在抽象类中完成,只将非公共的部分逻辑抽象成抽象方法,留待子类充实实现。 所以上文所述不足之处就是这些抽象方法。 总的来说,模板模式就是通过抽象类来定义一个逻辑模板,逻辑框架、逻辑原型,然后将无法决定的部分抽象成抽象类交由子类来实现,一般这些抽象类的调用转载 2020-09-22 13:34:12 · 1173 阅读 · 0 评论 -
设计模式之委派模式
委派模式总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。虽然说委派模式不属于Gof23中设计模式,但这并不影响它成为一种经典的设计模式。“委派”字面意思就是指派一.转载 2020-09-22 09:34:21 · 246 阅读 · 0 评论 -
设计模式之代理模式
1.代理模式简介代理模式介绍代理模式也叫委托模式,是结构型设计模式的一种。在现实生活中我们用到类似代理模式的场景有很多,比如代购、代理上网、打官司等。定义为其他对象提供一种代理以控制这个对象的访问。代理模式结构图Subject:抽象主题类,声明真实主题与代理的共同接口方法。 RealSubject:真实主题类,定义了代理所表示的真实对象,客户端通过代理类间接的调用真实主题类的方法。 ProxySubject:代理类,持有对真实主题类的引用,在其所实现的接口方法中调用真实主题类转载 2020-09-21 14:04:25 · 128 阅读 · 0 评论 -
设计模式之单例模式
所谓单例,就是整个程序有且仅有一个实例。该类负责创建自己的对象,同时确保只有一个对象被创建。在Java,一般常用在工具类的实现或创建对象需要消耗资源。特点类构造器私有 持有自己类型的属性 对外提供获取实例的静态方法懒汉模式 线程不安全,延迟初始化,严格意义上不是不是单例模式public class Singleton { private static Singleton instance; private Singleton (){} public s转载 2020-09-21 09:39:43 · 130 阅读 · 0 评论