JAVA23种设计模式及六大原则
文章平均质量分 57
绝对秋香
佛系,出门困难症,少有爱好篮球
展开
-
(六)JAVA设计模式中的六大设计原则之开闭原则
开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,需要面向接口编程。原创 2021-12-28 11:33:00 · 206 阅读 · 0 评论 -
(五)JAVA设计模式中的六大设计原则之迪米特原则
迪米特法则又叫最少知道原则,最早是在1987年由美国Northeastern University的Ian Holland提出。通俗的来讲,就是一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的public方法,不对外泄漏任何信息。原创 2021-12-24 17:43:57 · 800 阅读 · 0 评论 -
(四)JAVA设计模式中的六大设计原则之接口隔离原则
接口隔离原则的含义是:建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。原创 2021-12-23 17:20:15 · 240 阅读 · 0 评论 -
(三)JAVA设计模式中的六大设计原则之依赖倒置原则
所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体。实现开闭原则的关键是抽象化,并且从抽象化导出具体化实现,如果说开闭原则是面向对象设计的目标的话,那么依赖倒转原则就是面向对象设计的主要手段。原创 2021-12-22 16:18:32 · 225 阅读 · 0 评论 -
(二)JAVA设计模式中的六大设计原则之里氏替换原则
父类中凡是已经实现好的方法(相对于抽象方法而言),实际上是在设定一系列的规范和契约,虽然它不强制要求所有的子类必须遵从这些契约,但是如果子类对这些非抽象方法任意修改,就会对整个继承体系造成破坏。而里氏替换原则就是表达了这一层含义。原创 2021-12-21 11:24:35 · 272 阅读 · 0 评论 -
(一)JAVA设计模式中的六大设计原则之单一职责原则
简单通俗的来说:一个类只负责一项职责。原创 2021-12-20 10:28:50 · 312 阅读 · 0 评论 -
二十三 JAVA设计模式23种设计模式之责任链模式实例demo
在职责链模式中,使得每一个对象都有可能来处理请求,从而实现了请求的发送者和接收者之间的解耦。同时职责链模式简化了对象的结构,它使得每个对象都只需要引用它的后继者即可,而不必了解整条链,这样既提高了系统的灵活性也使得增加新的请求处理类也比较方便。但是在职责链中我们不能保证所有的请求都能够被处理,而且不利于观察运行时特征。原创 2021-12-16 14:44:13 · 440 阅读 · 0 评论 -
二十二 JAVA设计模式23种设计模式之命令模式实例demo
命令模式可以将请求的发送者和接收者之间实现完全的解耦,发送者和接收者之间没有直接的联系,发送者只需要知道如何发送请求命令即可,其余的可以一概不管,甚至命令是否成功都无需关心。同时我们可以非常方便的增加新的命令,但是可能就是因为方便和对请求的封装就会导致系统中会存在过多的具体命令类。原创 2021-12-16 10:45:48 · 251 阅读 · 0 评论 -
二十一 JAVA设计模式23种设计模式之解释器模式实例demo
所谓解释器模式就是定义语言的文法,并且建立一个解释器来解释该语言中的句子。解释器模式描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发的编译器中。它描述了如何为简单的语言定义一个文法,如何在该语言中表示一个句子,以及如何解释这些句子。原创 2021-12-13 11:10:13 · 210 阅读 · 0 评论 -
(二十)JAVA设计模式23种设计模式之迭代器模式实例demo
何为迭代器模式?所谓迭代器模式就是提供一种方法顺序访问一个聚合对象中的各个元素,而不是暴露其内部的表示。迭代器模式是将迭代元素的责任交给迭代器,而不是聚合对象,我们甚至在不需要知道该聚合对象的内部结构就可以实现该聚合对象的迭代。原创 2021-12-09 09:27:32 · 423 阅读 · 0 评论 -
(十九)JAVA设计模式23种设计模式之中介者模式实例demo
所谓中介者模式就是用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。在中介者模式中,中介对象用来封装对象之间的关系,各个对象可以不需要知道具体的信息通过中介者对象就可以实现相互通信。它减少了对象之间的互相关系,提供了系统可复用性,简化了系统的结构。原创 2021-12-08 10:41:54 · 313 阅读 · 0 评论 -
(十八)JAVA设计模式23种设计模式之备忘录模式实例demo
所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。它实现了对信息的封装,使得客户不需要关心状态保存的细节。保存就要消耗资源,所以备忘录模式的缺点就在于消耗资源。如果类的成员变量过多,势必会占用比较大的资源,而且每一次保存都会消耗一定的内存。原创 2021-12-07 10:07:46 · 215 阅读 · 0 评论 -
(十七)JAVA设计模式23种设计模式之观察者模式实例demo
观察者模式包含如下角色:Subject: 目标ConcreteSubject: 具体目标Observer: 观察者ConcreteObserver: 具体观察者何谓观察者模式?观察者模式定义了对象之间的一对多依赖关系,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并且自动更新。在这里,发生改变的对象称之为观察目标,而被通知的对象称之为观察者。一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,所以么可以根据需要增加和删除观察者,使得系统更易于扩展。所以观察..原创 2021-12-06 10:18:51 · 230 阅读 · 0 评论 -
(十六)JAVA设计模式23种设计模式之状态模式实例demo
同时状态模式是将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需要改变对象状态即可改变对象的行为。但是这样就会导致系统的结构和实现都会比较复杂,如果使用不当就会导致程序的结构和代码混乱,不利于维护。原创 2021-12-03 10:37:29 · 525 阅读 · 0 评论 -
(十五)JAVA设计模式23种设计模式之策略模式实例demo
在策略模式中它将这些解决问题的方法定义成一个算法群,每一个方法都对应着一个具体的算法,这里的一个算法我就称之为一个策略。虽然策略模式定义了算法,但是它并不提供算法的选择,即什么算法对于什么问题最合适这是策略模式所不关心的,所以对于策略的选择还是要客户端来做。客户必须要清楚的知道每个算法之间的区别和在什么时候什么地方使用什么策略是最合适的,这样就增加客户端的负担。原创 2021-12-02 11:25:08 · 258 阅读 · 0 评论 -
(十四)JAVA设计模式23种设计模式之模板模式实例demo
有些时候我们做某几件事情的步骤都差不多,仅有那么一小点的不同,在软件开发的世界里同样如此,如果我们都将这些步骤都一一做的话,费时费力不讨好。所以我们可以将这些步骤分解、封装起来,然后利用继承的方式来继承即可,当然不同的可以自己重写实现嘛!这就是模板方法模式提供的解决方案。原创 2021-12-01 14:51:54 · 617 阅读 · 0 评论 -
(十三)JAVA设计模式23种设计模式之访问者模式实例demo
访问者模式俗称23大设计模式中最难的一个。除了结构复杂外,理解也比较难。在我们软件开发中我们可能会对同一个对象有不同的处理,如果我们都做分别的处理,将会产生灾难性的错误。对于这种问题,访问者模式提供了比较好的解决方案。访问者模式即表示一个作用于某对象结构中的各元素的操作,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。原创 2021-11-30 11:08:16 · 538 阅读 · 0 评论 -
(十二)JAVA设计模式23种设计模式之代理模式实例demo
代理模式就是给一个对象提供一个代理,并由代理对象控制对原对象的引用。它使得客户不能直接与真正的目标对象通信。代理对象是目标对象的代表,其他需要与这个目标对象打交道的操作都是和这个代理对象在交涉。原创 2021-11-26 10:26:43 · 181 阅读 · 0 评论 -
(十一)JAVA设计模式23种设计模式之享元模式实例demo
在一个系统中对象会使得内存占用过多,特别是那些大量重复的对象,这就是对系统资源的极大浪费。享元模式对对象的重用提供了一种解决方案,它使用共享技术对相同或者相似对象实现重用。享元模式就是运行共享技术有效地支持大量细粒度对象的复用。系统使用少量对象,而且这些都比较相似,状态变化小,可以实现对象的多次复用。这里有一点要注意:享元模式要求能够共享的对象必须是细粒度对象。享元模式通过共享技术使得系统中的对象个数大大减少了,同时享元模式使用了内部状态和外部状态,同时外部状态相对独立,不会影响到内部状态,所以享...原创 2021-11-25 10:14:10 · 556 阅读 · 0 评论 -
(十)JAVA设计模式23种设计模式之外观模式实例demo
我们都知道类与类之间的耦合越低,那么可复用性就越好,如果两个类不必彼此通信,那么就不要让这两个类发生直接的相互关系,如果需要调用里面的方法,可以通过第三者来转发调用。外观模式非常好的诠释了这段话。外观模式提供了一个统一的接口,用来访问子系统中的一群接口。原创 2021-11-24 09:33:19 · 186 阅读 · 0 评论 -
(九)JAVA设计模式23种设计模式之装饰者模式实例demo
装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。原创 2021-11-23 09:50:48 · 312 阅读 · 0 评论 -
(八)JAVA设计模式23种设计模式之组合模式实例demo
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。原创 2021-11-22 10:25:07 · 453 阅读 · 0 评论 -
(七)JAVA设计模式23种设计模式之桥接模式实例demo
桥接模式桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。我们通过下面的实例来演示桥接模式(Bridge Pattern)的用法。其中,可以使用相同的抽象类方法但是不同的桥接实现类,来画出不同颜色的圆。介绍意图:将抽象部分与实现部分分离,使它们都可以...原创 2021-11-19 16:20:50 · 583 阅读 · 0 评论 -
(六)JAVA设计模式23种设计模式之适配器模式实例demo
适配器模式适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。我们通过下面的实例来演示适配器模式的使用。其中,音频播放器设备只能播放 mp3 文件,通过使用一个更高级的音频播放器来播放 vlc 和 mp4...原创 2021-11-17 14:53:38 · 681 阅读 · 0 评论 -
(五)JAVA设计模式23种设计模式之原型模式实例demo
原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。优点:1、性能提高。2、逃避构造函数的约束。缺点:1、配备克隆方法需要对类的功能进行通盘考虑,这对于全新的类不是很难,但对于已有的类不一定很容易,特别当一个类引用不支持串行化的间接对象,或者引用含有循环结构的时候。2、必须实现 Cloneable 接口。3、逃避构造函数的约束。demo入口类packag.原创 2021-11-15 09:02:16 · 179 阅读 · 0 评论 -
(四)JAVA设计模式23种设计模式之建造者模式实例demo
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。介绍意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各...原创 2021-11-12 14:33:27 · 372 阅读 · 0 评论 -
(三)JAVA设计模式23种设计模式之抽象工厂模式实例demo
抽象工厂模式抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。此时,我们可以考虑将一些相关的产品组成一个“产品族”,由同一个工厂来统一生产抽象工厂(Abst...原创 2021-11-11 11:35:20 · 704 阅读 · 0 评论 -
(二)JAVA设计模式23种设计模式之工厂方法模式实例demo
工厂方法模式入口类package factory_method_mod;import org.junit.Test;/** * 工厂模式 * 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 * * 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 * * 介绍 * 意图:定义一个创建对象的接口,让其子类自己决定..原创 2021-11-10 10:13:02 · 384 阅读 · 0 评论 -
(一)JAVA设计模式23种设计模式之单例模式实例demo
单例模式实现由两种,一种是饿汉模式,见Singleton1类。另一种是懒汉模式(延迟加载)。懒汉模式又可分为代码同步块实现,见Singleton4类。懒汉模式又可分为静态内部类实现,见Singleton5类。懒汉模式又可分为枚举方式实现,见Singleton6类。执行主函数package singleton_method_mod;import org.junit.Test;/** * 单例模式 * 单例模式(Singleton Pattern)是 Jav...原创 2021-11-09 11:01:44 · 405 阅读 · 0 评论