java design mode
文章平均质量分 65
浮生夢
当有一天,有星光刺破黑洞的昏暗,那是我吞吐天地的余晖,代表着我已映照诸天。当有一天,有玄雷划过星空的浩瀚,那是我拳光的劲风,代表着我已回来。当星河列阵,宇宙星海星光齐绽,那是我在笑,我已复苏,我在归来,我已无敌!
展开
-
Java23种设计模式之外观模式
一,背景外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。二,优缺点优点:1、减少系统相互依赖。 2、提高灵活性。 3、提高了安全性。缺点:不符合开闭原则,如果要改东西很麻烦,继承重写都不合适。三,实现我们将创建一个Shape接口和实现了Shape接...原创 2021-04-26 08:53:17 · 248 阅读 · 0 评论 -
Java23种设计模式之过滤器模式
1,背景过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。二,实现被过滤的对象/** * 被过滤的对象 */public class Person { /** * 姓名 */ private String name; /**原创 2021-04-23 10:04:43 · 606 阅读 · 0 评论 -
Java23种设计模式之装饰器模式
一,背景装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。二,优缺点优点:装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。缺点:多层装饰比较复杂。三,实现基础接口public interface Co原创 2021-04-23 09:56:58 · 300 阅读 · 0 评论 -
Java23种设计模式之桥接模式
一,场景在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。比如汽车在路上行驶的来说。即有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路上行驶。这你会发现,对于交通工具(汽车)有不同的类型,然而它们所行驶的环境(路)也在变化,在软件系统中就要适应两个方面的变化?怎样实现才能应对这种变化呢?二,优缺点优点:.原创 2021-04-22 10:08:11 · 231 阅读 · 0 评论 -
Java23种设计模式之适配器模式
一,场景适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。我们通过下面的实例来演示适配器模式的使用。其中,音频播放器设备只能播放 mp3 文件,通过使用一个更高级的音频播放器来播放 vlc 和 mp4 文件。原创 2021-04-21 09:27:10 · 225 阅读 · 0 评论 -
Java23种设计模式之策略模式
一,场景在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当然也可以将这些查找算法封装在一个统一的方法中,通过if…else…或者case等条件判断语句来进行选择。这两种实现方法我们都可以称之为硬编码,如果需要增加一种新的查找算法,需要修改封装算法类的源代原创 2021-04-21 09:01:43 · 294 阅读 · 0 评论 -
Java23种设计模式之观察者模式
一,场景在一些游戏中经常有这样的一个场景。英雄和怪兽的故事,角色有英雄,陷阱,怪兽,宝物。英雄可以移动,当移动到怪兽或者陷阱范围内就会掉血,移动到宝物范围内就会加血。这个场景怎么实现呢?可能有人说我在陷阱,怪兽,宝物类上加一个死循环,实时监测是否有英雄进入范围,but,一浪费资源(即使硬性不懂也会实时计算),二计算时机不准确,只要是实时监测就会有时间间隔,英雄都超过范围了才触发,甚至没来的及触发。那么应该如实实现呢?这里用到观察者模式。二,实现(基于jdk)1,英雄类为被观察者import原创 2020-07-19 18:00:57 · 718 阅读 · 1 评论 -
软件设计的七大原则
1.开-闭原则(Open-Closed Principle, OCP)一个软件实体应当对扩展开发,对修改关闭.说的是,再设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展.换言之,应当可以在不必修改源代码的情况下改变这个模块的行为,在保持系统一定稳定性的基础上,对系统进行扩展。这是面向对象设计(OOD)的基石,也是最重要的原则。2.里氏代换原则(Liskov Substitut...原创 2019-08-10 09:24:11 · 759 阅读 · 0 评论 -
Java23种设计模式之构建者模式
一,什么是构建者模式创建者模式又叫建造者模式,是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加以抽象,通过子类继承或者重载的方式,动态的创建具有复合属性的对象。二,角色1.建造者角色(Builder)对复杂对象的创建过程加以抽象,给出一个抽象接口,以规范产品对象的各个组成部分的...原创 2018-07-05 13:25:38 · 446 阅读 · 0 评论 -
Java23种设计模式之原型模式
一,什么是原型模式 Prototype模式是一种对象创建型模式,它采取复制原型对象的方法来创建对象的实例。使用Prototype模式创建的实例,具与原型一样的数据。二、原型模式的特点1. 由原型对象自身创建目标对象。也就是说,对象创建这一动作发自原型对象本身。2.目标对象是原型对象的一个克隆。也就是说,通过Prototype模式创建的对象,不仅仅与原型对象具有相同的结构,还与原型对象具有相同的...原创 2018-07-03 21:15:44 · 338 阅读 · 0 评论 -
Java23种设计模式之单例模式
一,什么是单例模式 Java中单例(Singleton)模式是一种广泛使用的设计模式。单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在。一些管理器和控制器常被设计成单例模式。 单例模式有很多好处,它能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间;能够避免由于操作多个实例导致的逻辑错误。如果一个对象有可能贯穿整个应用程序...原创 2018-07-02 21:29:35 · 268 阅读 · 0 评论 -
Java23种设计模式之抽象工厂模式
一、什么是抽象工厂模式 抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象。二、产品族和产品等级结构三、模式中包含的角色及其职责1.抽象工厂(Creator)角色抽象工厂模式的核心,包含对多个产品结构的声明,任何工厂类都必须实现这个接口。2.具体工厂( Concrete Cre...原创 2018-06-30 10:03:14 · 379 阅读 · 0 评论 -
Java23种设计模式之工厂方法模式
一、什么是工厂方法模式 工厂方法模式同样属于类的创建型模式又被称为多态工厂模式 。工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。二、模式中包含的角色及其职责1.抽象工厂(Cr...转载 2018-06-30 09:18:12 · 323 阅读 · 0 评论 -
Java23种设计模式之简单工厂模式(不属于GOF 23种设计模式之一)
一、什么是简单工厂模式 简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建其他类的实例,创被建实例的都通常具有共同的父类。二、模式中包含的角色及其职责1.工厂(生成器)角色?简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。2.抽象(产品)角色?简单工厂模式所创建的所有对象的父类,它负责描...原创 2018-06-29 22:19:52 · 394 阅读 · 0 评论