设计模式
文章平均质量分 85
子桑尽欢
擅长Java和Android开发,对产品质量有一定追求。
对大数据有着憧憬!!
展开
-
分享几个项目中用到的设计模式
前言之前项目中出于扩展性和有雅性的考虑,使用了多种设计模式进行项目框架的设计。主要的一些设计模式是单例模式,工厂模式,模板方法模式,责任链模式,代理模式这几种。现在依次讲讲这几个的主要是实现方式和在我们项目中的应用场景。核心设计模式分享单例模式使用场景:用于Minio客户端编写以及数据库连接池。常见形式:懒汉式,、饿汉式,双锁机制。懒汉式线程不安全:public class Singleton{private static Singleton singleton;private Sin原创 2022-04-06 22:00:35 · 6046 阅读 · 0 评论 -
设计模式之适配器模式
1 概念:把一个类的接口转为另一个类的接口。适配器使原来不能兼容的类能一起工作通过继承或依赖来解决。适配器不是在详细设计时添加的,而是解决正在服役的项目的问题。2 关键代码:继承或依赖已有的目标,实现想要的接口。3 优点:让没有任何关联的类能够一起运行。提高类的复用。增加类的透明度4 缺点:过多使用适配器会让系统过于凌乱,不易进行整体把握;Java最多继承一个适配器类,且目标必须是抽象类...原创 2019-08-13 07:56:51 · 72 阅读 · 0 评论 -
装饰器模式
1 基本概念:向一个现有的对象添加新的功能,同时又不改变其结构。在保证类方法签名完整性的前提下,提供额外的功能。2 优点:装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式, 可以动态扩展一个类的功能3 缺点:多层装饰比较复杂。使用场景:扩展一个类的功能;动态增加功能,动态撤销样例:创建一个接口:public interface Shape {void dra...原创 2019-08-12 21:53:42 · 81 阅读 · 0 评论 -
Java设计模式之过滤器模式
1 基本概念:这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把他们连接在一起。2 person对象,Criteria接口和实现该接口的实体类,来过滤Persond对象的列表。样例://对person类进行过滤public class Person{private String name;private String gender;private Stri...原创 2019-08-12 21:24:40 · 418 阅读 · 0 评论 -
设计模式之代理模式
一 基本概念:在代理模式中,创建现有对象的对象,向外界提供功能接口,为其他对象提供一种代理以控制对这个类的访问注意:与适配器模式的区别:适配器模式主要改变所考虑对象的接口,代理不能改变所代理类的接口;与装饰器模式的区别:装饰器是为了增加功能,代理是为了加以控制;二 优点:职责清晰高扩展化三 缺点:由于在客户端和真实主题之间有了代理对象,会导致请求的处理速度变慢实现代理模式会增加额...原创 2019-08-12 08:05:10 · 96 阅读 · 0 评论 -
设计模式的六大原则
1 开闭原则:对扩展是开放的,对修改是关闭的,不能修改原来的代码,实现热插拔的效果。为了程序的扩展性,易于维护和升级。需要使用到接口和抽象类。2 里氏替换原则:任何基类出现的地方,子类一定出现。里氏替换是继承复用的基石,只有派生类可以替换掉基类,且软件功能不受到影响时,基类才能被真正复用,派生类才能在基类基础上增加新的功能,是对开闭原则的补充。3 依赖倒置原则:针对接口编程,依赖于抽象不...原创 2019-08-15 07:49:41 · 90 阅读 · 0 评论 -
设计模式之原型模式
原型模式1基本概念:原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。优点:1、性能提高。2、逃避构造函数的约束。...原创 2019-08-07 08:07:50 · 78 阅读 · 0 评论 -
设计模式之观察者模式
观察者模式简述1 基本概念:当对象存在一对多关系时,目标对象的状态发生改变,需要通知到他的依赖对象时(观察者),采用观察者模式(行为型)。2 优点:观察者和被观察者是抽象耦合的观察者和被观察者之间建立一套触发机制3 缺点如果有多个观察者时,把状态通知到每个观察者会耗费很多时间如果观察者和被观察者有循环依赖时,观察目标会触发循环调用,可能导致系统崩溃观察者只知道观察...原创 2019-08-06 22:16:03 · 101 阅读 · 0 评论 -
单例模式的几种实现
1 懒汉式,线程不安全:public class Singleton{private static Singleton singleton;private Singleton(){}public static Singleton getSingleton(){ if(instance==null){ instance = new Singleton(); } return ins...原创 2019-08-05 16:34:01 · 102 阅读 · 0 评论 -
设计模式之单例模式
一 什么是单例模式,优点缺点及适用场景1 单例模式概念:创建型模式,自己内部创建一个自己的实例对象,并提供给外部获取自己实例的接口,还必须只有单个对象被创建。总结:单例类只有一个实例;必须自己创建自己的实例;单例类必须给其他类提供这一实例。关键代码:构造函数是私有的(private)2 优点:内存中只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例。3 缺点:没有接口,不能继承...原创 2019-08-05 15:48:48 · 86 阅读 · 0 评论 -
设计模式之抽象工厂模式
抽象工厂模式1 基本概念:抽象工厂模式称为工厂的工厂,他提供的不是创建产品实例的接口,而是创建工厂的接口,不需要显示指定他们的类,每个生成的工厂又按照工厂模式提供对象2 优点:当一个产品族的多个对象被设计成一起工厂时,能保证客户端只使用一个产品族的对象。3 缺点:扩展比较难,如果要扩展的话既要在实体中增加代码,在工厂中也要增加代码4使用场景:有多余一个的产品族,一个产...原创 2019-08-05 08:08:37 · 118 阅读 · 0 评论 -
Java设计模式之工厂模式
一 工厂模式1 工厂模式属于创建型模式,指的是不暴露给客户端创建对象逻辑,用一个共同的接口指向创建的对象。定义一个创建对象的接口,让子类决定实例化哪一个工厂类。适用于复杂系统2 优点:调用者想创建对象只需要直到名称就行;扩展性高:如果想增加一个产品只需要一个工厂类;不用关心内部实现,只需要关心产品的接口3 缺点: 每增加一个产品就需要增加一个具体类和工厂实现,过多会使系统变得复杂,也增加系...原创 2019-08-04 09:16:15 · 90 阅读 · 0 评论