首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Java基础】23种设计模式介绍

「单例模式示例代码」 适配器模式 是一种结构型设计模式,它能使接口不兼容的对象能够互相合作 桥接模式 是一种结构型设计模式,可将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,从而能在开发时分别使用...组合模式 是一种结构型设计模式,你可以使用它将对象组合成树状结构,并且能像使用独立对象一样使用他们 装饰者模式 是一种结构型设计模式,允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为...各个具体装饰者是可以相互叠加的,从而可以构成一个功能更强大的组件对象 「装饰者模式示例代码」 外观模式 是一种结构型设计模式,能为程序库、框架或其他复杂类提供一个简单的接口 享元模式 是一种结构型设计模式...(列表、栈、树等)的情况下遍历集合中的所有元素 中介者模式 是一种行为设计模式,能让你减少对象之间混乱无序的依赖关系,该模式会限制对象之间的直接交互,迫使它们通过一个中介对象进行合作 备忘录模式 是一种行为设计模式...模版方法模式 是一种行为设计模式,它在超类中定义一个算法框架,允许子类在不修改结构的情况下重写算法的特定步骤 访问者模式 一种行为型设计模式,能将操作与其所作用的对象隔离开 单例模式代码 //1.

33710

Java基础教程(19)-设计模式简述

设计模式,即Design Patterns,是指在软件设计中,被反复使用的一种代码设计经验。使用设计模式的目的是为了可重用代码,提高代码的可扩展性和可维护性。...设计模式把一些常用的设计思想提炼出一个个模式,然后给每个模式命名,这样在使用的时候更方便交流。...23个常用模式分为创建型模式、结构型模式和行为型模式三类 创建型模式关注点是如何创建对象,其核心思想是要把对象的创建和使用相分离,这样使得两者能相对独立地变换。...装饰器(Decorator)模式,是一种在运行期动态给某个对象的实例增加功能的方法 外观(Facade)模式是为了给客户端提供一个统一入口,并对外屏蔽内部子系统的调用细节 享元模式的设计思想是尽量复用已创建的对象...代理模式 为其他对象提供一种代理以控制对这个对象的访问。 行为型模式主要涉及算法和对象间的职责分配。通过使用对象组合,行为型模式可以描述一组对象应该如何协作来完成一个整体任务。

16310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java设计模式之工厂模式【设计模式】

    工厂模式: 这里用百度百科的词条来解释: 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。...著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象。...在我们java生态中,spring对工厂模式运用的可算是极致了,顶级类BeanFactory是bean的最顶级的工厂类... 在这里,我模拟一下工厂模式: 先说一下工厂模式需要的角色: 机器?...试想,天下的面条种类那么多,工厂模式是非常容易扩展的,实现思路即java的“多态” 这里,就已经实现了一个简单的工厂模式,即简单工厂模式 当你的宝马机器生产宝马的时候,这个时候只需要拓展Machine类即可...machine = new BMWMachine(); System.out.println(machine.create(new Object())); } 这就是java

    86140

    java设计模式(4)-原型设计模式

    这篇推文学习创建型模式最后一种-原型模式,该模式的思想是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象,以便使用 首先需要了解对象深、浅复制的概念: 浅拷贝:将一个对象复制后,基本数据类型的变量都会重新创建...所有的Java类都继承至Object,而Object类提供了一个clone()方法,该方法可以将一个java对象复制一份,因此在java中可以直接使用clone()方法来复制一个对象。...异常 Java中任何实现了Cloneable接口的类都可以通过调用clone()方法来复制一份自身然后传给调用者。...如果系统要保存对象的状态,而对象的状态变化很小,或者对象本身占内存不大的时候,也可以使用原型模式配合备忘录模式来应用。...相反,如果对象的状态变化很大,或者对象占用的内存很大,那么采用状态模式会比原型模式更好。

    48150

    java — 设计模式

    设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。...一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。...3、依赖倒转原则(Dependence Inversion Principle) 这个是开闭原则的基础,具体内容:面向接口编程,依赖于抽象而不依赖于具体。...三、Java中具体的设计模式 1.简单工厂模式(Simple Factory) 根据提供给它的参数,返回的是几个可能产品中的一个类的实例。 ?...在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。

    987120

    Java设计模式

    本文链接:https://blog.csdn.net/github_39655029/article/details/82736019 设计模式基础 设计模式主要基于的面向对象设计的原则:...结构模式:涉及类和对象组成,继承概念用于组成接口并定义方法组合对象以获得新功能; 行为模式:侧重于对象之间的通信; J2EE模式:设计表示层,由Sun Java Center标识; 创造设计模式...,可直接访问而不需要实例化类对象; 原型模式 涉及实现一个原型接口,只创建当前对象的克隆; Builder模式 构造器逐步构建最终对象,此构造器独立于其他对象; 结构设计模式 适配器...:表示层代码可以是JSP,servlet或UI java代码; 业务代理:为客户端实体提供对业务服务方法的访问的单入口点类; 查找服务:负责获得相关业务的实施和提供业务的委托对象业务对性爱难过的访问;...NULL对象类,不提供此类的任何实现,且无需检查空值; MVC模式 模型:表示携带数据对象或JAVA POJO,若其数据改变也可以具有逻辑来更新控制器; 视图:表示模型包含的数据的可视化层; 控制器

    1K10

    Java设计模式

    设计模式 一、单例模式 定义:单例模式,保证一个类有且仅有一个实例,并提供一个它的全局访问点。 缺点:不管用到与否,类装载时就完成实例化(如果没有用到,则内存浪费)。...这种设计模式可以用于解耦。...装饰者模式 定义:装饰是一种结构设计模式, 允许你通过将对象放入特殊封装对象中来为原对象增加新的行为。...为对象增加新的行为可以理解为在原基础上的扩展,抛开设计模式而言,我们首先想到的解决方式是继承,如果你想给一款低配版版汽车装上倒车影像,你可以你的Car可以继承自RoadRadar ,当你想继续提升行使品质的时候...装饰模式可以在不需要创造更多子类的情况下,将对象的功能加以扩展。 装饰模式的核心在于抽象装饰类的设计。

    72120

    java设计模式

    简介 java中一般认为有23种设计模式,当然暂时不需要所有的都会,但是其中常见的几种设计模式应该去掌握。...总体来说设计模式分为三大类: 创建型模式: 共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。...单列模式 所谓的单例设计指的是一个类只允许产生一个实例化对象;最好理解的一种设计模式,分为懒汉式和饿汉式。...工厂设计模式 工厂模式分为工厂方法模式和抽象工厂模式。 工厂方法模式 工厂方法模式分为三种:普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。...需要设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口,设计一个抽象类(可有可无,属于辅助类),提供辅助函数。

    26360

    Java 设计模式

    设计模式基础 设计模式主要基于的面向对象设计的原则: 程序到一个接口不用实现; 有利于对继承对象组合; 设计模式用途: 开发人员的通用平台; 最佳实践; 类型: 创造模式:提供了一种创建对象而隐藏创建逻辑的方法...,而非直接使用new来实例化对象; 结构模式:涉及类和对象组成,继承概念用于组成接口并定义方法组合对象以获得新功能; 行为模式:侧重于对象之间的通信; J2EE 模式:设计表示层,由Sun Java Center...,可直接访问而不需要实例化类对象; 原型模式 涉及实现一个原型接口,只创建当前对象的克隆; Builder模式 构造器逐步构建最终对象,此构造器独立于其他对象; 结构设计模式 适配器(Adapter)模式...,用于减少层代码中的业务层代码的通信或远程查找功能,业务层中实体如下: 客户端:表示层代码可以是 JSP,servlet 或 UI java 代码; 业务代理:为客户端实体提供对业务服务方法的访问的单入口点类...,且无需检查空值; MVC 模式 模型:表示携带数据对象或JAVA POJO,若其数据改变也可以具有逻辑来更新控制器; 视图:表示模型包含的数据的可视化层; 控制器:对模型和视图都起作用,控制数据流进入模型对象

    80631

    Java设计模式-外观模式

    我又来了,继Java设计模式之桥接模式后,现在来到了外观模式啦,外观模式又称为门面模式啦,下面慢慢来啦。...一张旧图,恍惚间念起旧人 Java设计模式-外观模式 一、前言 1)引入: 2)概述: 3)角色结构: 4)使用场景 二、案例 代码: 三、总结 优点: 缺点: 四、自言自语 一、前言 1)引入: 在以前...4)使用场景 (1)设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式。...设计模式-外观模式.assets\外观模式.png)] 代码: 电视类 public class TV { public void on() { System.out.println...当然这只是一个体现的外观模式的小demo,实际中并不全是一样的,设计模式也是根据实际的软件设计需求来进行应用的,多数情况下都是几种设计模式一起用的。

    24520

    Java设计模式-命令模式

    在对象的结构和创建问题都解决了之后,就剩下对象的行为问题了: 如果对象的行为设计的好,那么对象的行为就会更清晰,它们之间的协作效率就会提高....行为型模式共有11个可供研究,它们分别是:命令模式、解释器模式、访问者模式、模板方法模式、观察者模式、状态模式、策略模式、责任链模式、中介者模式、备忘录模式、迭代器模式....(图片来源: 设计模式: 可复用面向对象软件的基础) 模式实现 案例:以饭店点菜为例-点餐 客户不需要直接向大厨下达点菜命令, 而是通过给服务员书写菜单, 然后服务员再具体指挥大厨照单做菜, 菜单是一种...(案例来源: 大话设计模式) Receiver 命令接收者: 提供很多方法调用, 负责执行与请求相关业务逻辑; 厨师: 只负责做各种各样的菜. /** * @author jifang * @since...优点 较容易设计一个命令队列; 较容易将命令记录日志; 允许接受请求的一方决定是否要否决请求; 较容易地实现对请求的撤销与重做; 由于添加新的具体命令对其他类没有任何影响, 因此增加新的具体命令很容易

    70260

    Java设计模式-外观模式

    外观模式: 又称门面模式: 外观Facade为子系统的一组接口提供一个一致界面,使得这组子系统易于使用(通过引入一个新的外观角色降低原系统复杂度,同时降低客户类与子系统的耦合度)....图片来源: 设计模式: 可复用面向对象软件的基础. 实现 案例需求: 租房 有过自己找房租房经历的同学能够体会得到找房是件很痛苦的事, 不光要挨个小区跑而且还要跟(二)房东讨价还价...., 也完全有可能使用过他, 因为他完美的体现了依赖倒转原则和迪米特法则的思想, 是非常常用的模式之一....使用 首先 在设计初期, 应该有意识的进行层次分离, 比如经典的三层架构, 层与层之间建立Facade, 这样可以为复杂的子系统提供一个简单的接口, 使耦合度大大降低....第三 在维护一个遗留系统时, 可能这个系统已经非常难以维护和扩展了, 但因为它包含非常重要的功能, 新的需求必须依赖它, 此时可以为新系统开发一个Facade, 为设计粗糙或高复杂度的遗留代码提供一个的比较清晰简单的接口

    98140

    Java设计模式-策略模式

    什么是策略模式? 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。...--摘选自《JAVA与模式》 理论有些抽象,举个简单的例子各位就容易理解了... 我们去上课、上班、出差、旅游,需要选择合适的出行方式,是选择步行?公交?火车?还是飞机?......编码实战 需求是这样的:某商场想要开展3种销售模式,而且可以相互之间任意选择转换... 第1种销售模式:正常销售 第2种销售模式:打折销售(如:全场商品9折、全场8折...)...但是,如果你的需求更加多样,更加复杂...你会发现这种设计模式其实可以把你的复杂问题简单化、流程化。 总结 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。...拓展 组合两种设计模式 我们常常听说或正在使用的MVC、MVP、MVVM...等模式,其实在很大程度上是将设计模式进行组合规整后形成的...我们今天也要组合一个新模式 - 简单策略工厂模式(将调度的策略进一步用简单工厂模式进行封装

    72820

    JAVA 设计模式 外观模式

    用途 外观模式 (Facade) 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式是一种结构型模式。...结构 图-外观模式结构图 Facade : 了解每个子系统类的功能,负责分发客户端的请求给各个子系统去处理。...;         facade.op1();     } } 运行结果 Facade Method() 方法3 方法2 方法1 Facade op1() 方法1 要点 1、外观模式为复杂子系统提供了一个简单接口...2、外观模式实现了子系统与客户之间的松耦合关系。 3、外观模式没有封装子系统的类,只是提供了简单的接口。 如果应用需要,它并不限制客户使用子系统类。因此可以再系统易用性与通用性之间选择。...4、外观模式注重的是简化接口,它更多的时候是从架构的层次去看整个系统,而并非单个类的层次。 推荐 本文属于 JAVA设计模式系列 。 参考资料 《大话设计模式》《HeadFirst设计模式》

    816100
    领券