设计模式
mischen520
JAVA高级架构师
展开
-
论软件设计模式及其应用
摘要2020年5月,我所在的公司承接了某影音产品销售公司开发一套在线销售系统以及对应的后台管理平台,该项目主要是实现对客户营销,提升服务的质量和提高办公效率,支持用户通过web服务进行信息访问,支持公司内部员工通过登录后台管理平台对产品进行管理和维护。我在该项目中担任系统架构师一职,负责系统的架构设计和软件开发的部分设计工作。本文以该项目为例,主要论述了软件设计模式在该系统开发中的具体应用。在数据访问层,我们采用了工厂设计模式,定义统一的操作数据库的接口,以实现根据具体的类来访问不同的数据库;在验证码生原创 2022-05-02 08:33:39 · 1443 阅读 · 0 评论 -
什么是适配器模式?适配器模式的优点和缺点?
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。我们通过下面的实例来演示适配器模式的使用。其中,音频播放器设备只能播放 mp3 文件,通过使用一个更高级的音频播放器来播放 vlc 和 mp4 文件。意图:将一个类的原创 2022-04-04 10:31:51 · 3046 阅读 · 0 评论 -
什么是策略模式?策略模式的使用场景以及优缺点?
策略模式在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。介绍意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。如何原创 2022-04-04 09:49:23 · 2843 阅读 · 0 评论 -
什么是工厂设计模式?工厂设计模式的优点和应用场景?
工厂设计模式定义了创建对象的接口,允许子类决定实例化哪个类,而且允许请求者无须知道要被实例化的特定类,这样可以在不修改代码的情况下引入新类。优点:(1)没有了将应用程序类绑定到代码中的要求,可以使用任何实现了接口的类;(2)允许子类提供对象的扩展版本。应用场景:(1)类不能预料到它必须创建的对象的类;(2)类希望其子类指定它要创建的对象。在数据访问层定义采用工厂设计模式,定义统一的操作数据库的接口,然后根据数据库的不同,由类工厂来决定实例化哪个类。在具体类中实现特定的数据库访问类。这样,就可以实现由客原创 2022-01-26 05:59:32 · 1657 阅读 · 0 评论 -
Abstract Factory 模式的详细解析以及编码实例
1.模式名称Abstract Factory,也经常称之为抽象工厂模式。2.意图解决的问题在程序中创建一个对象似乎是不能再简单的事情,其实不然。在大型系统开发中存在以下问题:(1)object new ClassName 是最常见的创建对象方法,但这种方法造成类名的硬编码,需要根据不同的运行环境动态加载相同接口但实现不同的类实例,这样的创建方法就需要配合上复杂的判断,实例化为不同的对象。(2)为了适用于不同的运行环境,经常使用抽象类定义接口,并在不同的运行环境中实现这个抽象类的子类。普通的创建方式原创 2021-09-12 15:15:45 · 441 阅读 · 0 评论 -
设计模式的分类
可以说,设计模式是面向问题的,即每一种设计模式都是为了解决一种特定类型的问题。因此,根据设计模式要解决的问题将设计模式分为三类,分别为创建型、结构型和行为型。事实上,面向对象的设计中,需要解决的就是:如何管理系统中的对象、如何组织系统中的类与对象、系统中的类与对象如何相互通信。这三类设计模式分别解决了这三个方面的问题。创建型设计模式主要解决对象创建的问题。在最简单的情况下,在程序中定义类,在使用时创建一个对象实例。但在实际开发中,对象的创建会变得复杂很多,这时就需要使用创建型设计模式解决创建对象的问题。原创 2021-09-12 15:10:10 · 152 阅读 · 0 评论 -
什么是XML?XML的主要特点
原创 2021-08-25 06:32:31 · 462 阅读 · 0 评论 -
什么是装饰模式以及装饰模式的使用场景
装饰模式(Decorator):装饰模式可以在不修改对象外观和功能的情况下添加或者删除对象功能。它可以使用一种对客户端来说透明的方法来修改对象的功能,也就是使用初始类的子类实例对初始对象进行授权。装饰模式还为对象动态的添加了额外的重任,这样就在不使用静态继承的情况下,为修改对象功能提供了灵活的选择。在以下情况中,应该使用装饰模式:1.想要在单个对象中动态并且透明地添加责任,而这样并不会影响其他对象2.想要在以后可能要修改的对象中添加责任3.当无法通过静态子类化实现扩展时...原创 2021-08-25 06:25:37 · 664 阅读 · 0 评论 -
什么是中介者模式
中介者模式(Mediater):通过引入一个能够管理对象间消息分布的对象,简化了系统中对象的通信。优点:1.去除对象间的影响2.简化对象间的协议3.集中化了控制适用场景:1.对象集合需要以一个定义规范但复杂的方式进行通信2.想要在不使用子类的情况下自定义分布在几个对象之间的行为...原创 2021-08-25 06:12:30 · 190 阅读 · 0 评论 -
什么是访问者模式
原创 2021-08-25 06:03:33 · 136 阅读 · 0 评论 -
什么是模板方法模式
原创 2021-08-24 07:12:44 · 177 阅读 · 0 评论 -
什么是策略模式
原创 2021-08-24 07:10:44 · 76 阅读 · 0 评论 -
什么是状态模式
原创 2021-08-24 07:08:11 · 110 阅读 · 0 评论 -
什么是观察者模式
原创 2021-08-24 07:03:54 · 254 阅读 · 0 评论 -
什么是备忘录模式
原创 2021-08-24 07:00:27 · 80 阅读 · 0 评论 -
什么是迭代器模式
原创 2021-08-24 06:58:16 · 83 阅读 · 0 评论 -
什么是解释器模式
原创 2021-08-24 06:55:14 · 86 阅读 · 0 评论 -
什么是命令模式
原创 2021-08-24 06:53:24 · 96 阅读 · 0 评论 -
什么是责任链模式
原创 2021-08-24 06:50:31 · 71 阅读 · 0 评论 -
什么是代理模式
原创 2021-08-24 06:44:48 · 114 阅读 · 0 评论 -
什么是享云模式
原创 2021-08-23 07:10:47 · 112 阅读 · 0 评论 -
什么是外观模式
原创 2021-08-23 07:07:07 · 107 阅读 · 0 评论 -
什么是装饰模式
原创 2021-08-23 07:03:45 · 110 阅读 · 0 评论 -
什么是组合模式
原创 2021-08-23 07:00:22 · 87 阅读 · 0 评论 -
什么是桥接模式
原创 2021-08-23 06:56:03 · 295 阅读 · 0 评论 -
什么是适配器模式
原创 2021-08-23 06:52:55 · 84 阅读 · 0 评论 -
什么是原型模式
原创 2021-08-23 06:48:28 · 101 阅读 · 0 评论 -
什么是工厂方法模式
原创 2021-08-23 06:45:28 · 101 阅读 · 0 评论 -
什么是构建器模式
原创 2021-08-23 06:41:56 · 292 阅读 · 0 评论 -
什么是抽象工厂模式
原创 2021-08-23 06:36:31 · 86 阅读 · 0 评论 -
单例模式的几种实现方式
先来说说为什么要使用单例模式进行架构方面的设计,那就是单例模式的优点:1.单例模式只有一个实例,节省了内存资源,对于一些需要频繁创建和销毁的对象,使用单例模式可以提高系统性能2.单例模式可以设置系统的全局访问点,优化和共享数据。常见的系统架构设计中会经常使用单例模式就行设计,用来创建一个实例来就行读取相应的一些配置文件和公共类代码实现:1、饿汉式 (可用)public cla...原创 2020-01-29 09:44:11 · 284 阅读 · 0 评论 -
举例说明什么情况下会更倾向于使用抽象类而不是接口?
接口和抽象类都遵循”面向接口而不是实现编码”设计原则,它可以增加代码的灵活性, 可以适应不断变化的需求。下面有几个点可以帮助你回答这个问题: 在 Java 中,你只能继承一个类,但可以实现多个接口。所以一旦你继承了一个类,你就 失去了继承其他类的机会了。 接口通常被用来表示附属描述或行为如:Runnable、Clonable、Serializable 等等,因此当你 使用抽象类...原创 2020-03-21 09:23:58 · 2163 阅读 · 0 评论