设计模式
文章平均质量分 67
java语言实现常用的设计模式
长齐克斯
Java待就业
展开
-
模板模式
基本介绍模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。简单说,模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类以不改变一个算法的结构,就可以重定义该算法的某些特定步骤这种类型的设计模式属于行为型模式。优点:封装不变部分,扩展可变部分。提取公共代码,便于维护。行为由父类控制,子类实现。原创 2021-03-17 20:19:20 · 163 阅读 · 0 评论 -
代理模式(静态,动态,Cglib)
代理模式的基本介绍代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象代理模式有不同的形式, 主要有三种 静态代理、动态代理 (JDK代理、接口代理)和 Cglib代理 (可以在内存动态的创建对象,而不需要实现接口, 他是属于动态代理的范畴) 。代理模式示意图静态代理模式静态代理在使用时,需要定义接口或者父类原创 2021-03-17 19:25:41 · 186 阅读 · 0 评论 -
享元模式
基本介绍享元模式(Flyweight Pattern) 也叫 蝇量模式: 运用共享技术有效地支持大量细粒度的对象常用于系统底层开发,解决系统的性能问题。像数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,避免重新创建,如果没有我们需要的,则创建一个享元模式能够解决重复对象的内存浪费的问题,当系统中有大量相似对象,需要缓冲池时。不需总是创建新对象,可以从缓冲池里拿。这样可以降低系统内存,同时提高效率享元模式经典的应用场景就是池技术了,String常量池、数据库连接池、原创 2021-03-17 15:40:21 · 188 阅读 · 0 评论 -
外观模式
基本介绍外观模式(Facade),也叫“过程模式:外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节外观模式可以理解为转换一群接口,客户只要调用一个接口,而不用调用多个接口才能达到目的。比如:在pc上安装软件的时候经常有一键安装选项(省去选择安装目录、安装的组件等等),还有就是手机的重启功能(把关机和启动合为一个操作)。原创 2021-03-17 11:32:12 · 95 阅读 · 0 评论 -
组合模式
基本介绍组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“整体-部分”的层次关系。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式。组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客户以一致的方式处理个别对象以及组合对象意图:将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。主要解决:它在我们树型结构的问题中原创 2021-03-17 10:59:14 · 93 阅读 · 0 评论 -
装饰器模式
装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。意图: 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。主要解决: 一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。优点:装饰类和被装饰原创 2021-03-17 10:04:32 · 98 阅读 · 0 评论 -
桥接模式
基本介绍桥接模式(Bridge模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。是一种结构型设计模式Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展优点: 1、抽象和实现的分离。 2、优秀的扩展能力。 3、实现细节对客户透明。缺点:桥接模式的引入会增加系统的理解与设计难度,由于原创 2021-03-17 01:00:49 · 504 阅读 · 0 评论 -
原型模式
基本介绍原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象, 无需知道如何创建的细节工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建,即 对象.clone()这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被原创 2021-03-15 21:17:03 · 86 阅读 · 1 评论 -
桥接模式
桥接模式◆桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式, 又称为柄体(Handle and Body)模式或接口(Interfce)模式。传统多继承结构桥接模式//品牌public interface Brand { void info();}//联想品牌public class Lenovo implements Brand{ @Override public void info() { Syste原创 2020-12-26 10:19:56 · 10659 阅读 · 0 评论 -
适配器模式
适配器模式◆将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作!◆角色分析目标接口:客户所期待的接口,目标可以是具体的或抽象的类,也可以是接口。需要适配的类:需要适配的类或适配者类。适配器:通过包装一个需要适配的对象,把原接口转换成目标对象!//要适配的类 :网线public class Adaptee { public void request(){ System.out.println("连接网原创 2020-12-26 02:27:08 · 10803 阅读 · 0 评论 -
建造者模式
建造者模式◆建造者模式也属于创建型模式,它提供了一种创建对象的最佳方式。◆定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示◆主要作用:在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象。◆用户只需要给出指定复杂对象的类型和内容,建造者模式负责按顺序创建复杂对象(把内部的建造过程和细节隐藏起来)◆例子:工厂(建造者模式) :负责制造汽车(组装过>程和细节在工厂内)汽车购买者(用户) :你只需要说出你需要的>型号(对象的类型和内容),然原创 2020-12-25 23:15:53 · 10760 阅读 · 0 评论 -
工厂模式与抽象工厂模式
工厂模式模式定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使得一个类的实例化延迟到子类作用:实现了创建者和调用者的分离详细分类: 简单工厂模式 工厂方法模式 抽象工厂模式核心本质: 实例化对象不使用new,用工厂方法代替 将选择实现类,创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。三种模式:◆简单工厂模式 用来生产同一等级结构中的任意产品(对于增加新的产品,需要修改已有代码),不满足开闭原则◆工厂方法模式 用来生产同一等级结构原创 2020-12-25 21:34:30 · 13238 阅读 · 1 评论 -
单例模式
1.单例模式模式定义:保证一个类只有一个实例,并且提供一个全局访问点场景:重量级的对象,不需要多个实例,如线程池,数据库连接池。1.懒汉模式:延迟加载,只有在真正使用的时候, 才开始实例化。线程安全问题double check加锁优化编译器(JIT),CPU 有可能对指令进行重排序,导致使用到尚未初始化的实例,可以通过添加volatile 关键字进行修饰,对于volatile修饰的字段,可以防止指令重排。public class LazySingletonTest {原创 2020-12-25 17:18:37 · 10690 阅读 · 0 评论