![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 75
我愿成为你头顶的云
学无止境,尽量减少自己的无知。
展开
-
享元模式
1、享元模式的概念享元模式,英文Flyweight Pattern,属于结构型模式。主要用来减少创建对象的数量,进而减少内存占用来提高系统性能。我们都知道,创建出来的对象基本都会存放在JVM的堆中,堆中存在着大量的对象,也是GC回收的主要区域,内存中对象过多会影响系统性能,而享元模式的根本目的就是减少对象的创建,在一定程度上可以提高系统的性能。享元模式尝试重用现有的同类对象,如果没有的话,再创建,如果已经存在着这样的对象,直接用而不是创建。2、享元模式的特点重用现有的同类对象,没有再创建,尽量减少原创 2021-04-06 00:25:13 · 160 阅读 · 3 评论 -
外观模式
1、外观模式的概念外观模式,英文Facade Pattern,属于结构型模式。该模式会隐藏系统的复杂性,对外提供一个可以访问系统的简单接口。该模式涉及到一个类,该类中提供了客户端请求的简化方法和对现有系统方法的一种委托调用。2、外观模式的特点向现有系统添加一个接口,来隐藏系统的复杂性。3、关于外观模式使用目的:为子系统中的一组接口提供一个一致的界面,定义一个高层接口,使得系统更加容易使用。解决问题:降低访问系统的复杂度,简化客户端和系统之间的接口。使用时机:客户端不必知道系统内部的复原创 2021-04-05 18:07:22 · 286 阅读 · 0 评论 -
装饰器模式
1、装饰器模式的概念装饰器模式,英文Decorator Pattern,属于结构型模式。它允许我们在不改变现有对象结构的基础上,添加新的功能,可以说是对现有类的一种包装。该模式提供一个装饰类,用来包装原类,在保持原类方法不变的情况下,来添加新的功能。2、装饰器模式的特点提供包装类,对原类进行包装。保持原类方法不变,额外添加新功能。3、关于装饰器模式使用目的:动态的给对象添加新功能,这样其实比生成子类更加灵活方便。解决问题:使用继承来扩展父类时,如果功能很多,那么子类内部代码会膨胀,这时可原创 2021-04-05 17:26:44 · 167 阅读 · 0 评论 -
组合模式
1、组合模式的概念组合模式,英文Composite Pattern,也称为部分整体模式,属于结构型模式。该模式将一组相似对象当成一个整体对象,使用树形结构来组合对象,来表示部分以及整体层次。该模式创建一个包含自己对象组的类,然后在该类中提供修改相同对象组的方法。2、组合模式的特点使用树形结构来组合对象。将相似对象组合成一个整体,表示整体和部分层次。3、关于组合模式使用目的:将对象组合成树形结构来表示整体和部分层次。解决问题:在树形结构中,模糊了简单元素和复杂元素,可以让我们像处理简单元素原创 2021-04-05 16:17:22 · 328 阅读 · 1 评论 -
原型模式
1、原型模式的概念原型模式,英文Prototype Pattern,属于创建型模式。这种模式用于创建可重复的对象,同时又能保证其性能。该模式实现了一个原型接口,该接口用于创建当前对象的克隆,如果直接创建一个对象需要花费的代价比较大时,那么可以采用原型模式进行创建。举个例子,如果一个对象需要在数据库操作之后被创建,我们都知道,数据库的连接是昂贵的资源,频繁的创建和销毁非常不好,那么此时可以先缓存这个对象,在需要该对象时直接返回它的克隆,这样就不用每次在需要这个对象时都频繁的调用数据库了,在一定程度上可以说提原创 2021-04-04 17:28:11 · 158 阅读 · 0 评论 -
建造者模式
1、建造者模式的概念建造者模式,英文Builder Pattern,属于创建型模式,该模式组合多个简单的对象来构造一个复杂的对象。会有一个Builder类,而该类负责构造最终的复杂对象。2、建造者模式的特点组合多个简单对象,构造复杂对象。由构造类Builder来构造最终的对象。3、关于建造者模式使用目的:将一个复杂的构建与其表示分离,使得同样的构建能产生不同的组合。解决问题:在开发时,有时候需要创建一个复杂的对象,而这个对象是由多个简单的子对象组合而成的。有时候需要有一点变化,所以希望组原创 2021-04-02 14:48:35 · 159 阅读 · 0 评论 -
MVC模式
MVC模式1、MVC的概念2、模式特点3、设计模式和框架的区分4、MVC模式的优缺点5、MVC模式设计Web应用6、例子1、MVC的概念MVC全称为Model View Controller,即模型(Model)-视图(View)-控制器(Controller)的缩写,一种软件设计典范,用业务逻辑数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被广泛用于映射传统的输入,处理和输出功能在一个逻辑的图形化用户界面的结构设计原创 2021-02-25 10:27:27 · 1150 阅读 · 0 评论 -
模板模式
1、模板模式的概念在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。2、模板模式的特点子类按需要重写父类中的方法。以抽象父类中的定义进行调用。3、关于模板模式目的:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。解决问题:一些方法通用,却在每一个子类都重新写了这一方法原创 2021-01-07 20:57:02 · 3905 阅读 · 0 评论 -
空对象模式
1、空对象模式的概念在空对象模式(Null Object Pattern)中,一个空对象取代NULL对象实例的检查。Null对象不是检查空值,而是反应一个不做任何动作的关系。这样的Null对象也可以在数据不可用的时候提供默认的行为。在空对象模式中,我们创建一个指定各种要执行的操作的抽象类和扩展该类的实体类,还创建一个未对该类做任何实现的空对象类,该空对象类将无缝地使用在需要检查空值的地方。2、实现将创建一个定义操作(在这里,是客户的名称)的AbstractCustomer抽象类,和扩展了Abstra原创 2021-01-07 20:21:14 · 117 阅读 · 0 评论 -
代理模式
1、代理模式的概念在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。2、代理模式的特点创建具有现有对象的对象,向外界提供功能接口。3、关于代理模式目的:为其他对象提供一种代理以控制对这个对象的访问。解决问题:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问原创 2021-01-07 19:35:22 · 90 阅读 · 0 评论 -
过滤器模式
1、过滤器模式的概念过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。2、实现创建一个Person对象、Criteria接口和实现了该接口的实体类,来过滤Person对象的列表。CriteriaPatternDemo类使用Criteria对象,基于各种标准和它们的结合来过滤Person 对象的列表原创 2021-01-07 01:11:26 · 1820 阅读 · 2 评论 -
桥接模式
1、桥接模式的概念桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。2、桥接模式的特点提供抽象化和实现化之间的桥接结构,即一个桥接接口,来实现二者的解耦。3、关于桥接模式目的:将抽象部分与实现部分分离,使它们都可以独立的变化。解决问题:在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩原创 2021-01-04 18:15:01 · 454 阅读 · 0 评论 -
适配器模式
1、适配器模式概念将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。比如电脑想要读取到SD卡的内容,那么必须要借助读卡器来实现,这个读卡器就是连接SD卡和电脑的桥梁了。2、适配器模式的特点结合了两个独立接口的功能。有个单一的类,该类加入独立或不兼容的接口功能。原创 2021-01-04 16:27:24 · 389 阅读 · 0 评论 -
抽象工厂模式
1、抽象工厂模式的概念抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。2、抽象工厂模式的特点接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。3、关于抽象工厂模式目的:提供一个创建一系列相关或相互依赖原创 2021-01-03 11:54:24 · 170 阅读 · 0 评论 -
工厂模式
1、工厂模式的概念工厂模式(Factory Pattern)是Java中最常用的设计模式之一。属于创建型模式,它提供了一种创建对象的最佳方式。举个简单的例子,我们买汽车,直接去工厂提货就行了,不必关心它是怎么制造的以及内部的结构。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。2、工厂模式的特点创建对象时不会对客户端暴露创建逻辑,通过使用一个共同的接口来指向新创建的对象。3、关于工厂模式目的:定义一个创建对象的接口,让其子类自己决定实例化原创 2021-01-03 11:02:50 · 469 阅读 · 0 评论 -
单例模式
1、单例模式的概念单例模式(Singleton Pattern)是Java中最简单的设计模式之一。属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。2、单例模式的特点根据其特点,可以总结为以下三点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。3、关于单例模式使用目的:保证一个类仅有原创 2021-01-03 10:04:04 · 83 阅读 · 0 评论 -
设计模式简介
前言刚开始学Java的时候,老是听到设计模式这个词,一直到后来都是重复出现,觉得非常有必要去了解它,不说全部都掌握,但要基本清楚。1、设计模式概念设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易原创 2021-01-02 22:34:25 · 99 阅读 · 0 评论