![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
milovetingting
这个作者很懒,什么都没留下…
展开
-
桥接模式
个人博客http://www.milovetingting.cn桥接模式模式介绍桥接模式也称为桥梁模式,是结构型设计模式之一。模式定义将抽象部分与实现部分分离,使它们都可以独立地进行变化。使用场景一个系统需要在构件的抽象化角色和具体角色之间增加更多灵活性,避免在两个层次之间建立静态的继承关系,可以通过桥接模式使它们在抽象层建立一个关联关系。不希望使用继承或因为多层次继...原创 2020-02-19 00:39:13 · 83 阅读 · 0 评论 -
外观模式
个人博客http://www.milovetingting.cn外观模式模式介绍外观模式在开发过程中的运用频率非常高。通过一个外观类使得整个系统的接口只有一个统一的高层接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节。外观模式是我们封装API的常用手段。模式定义要求一个子系统的外部与内部通信必须通过一个统一的对象进行。使用场景为一个复杂子系统提供一个简单接口。...原创 2020-02-19 00:37:25 · 128 阅读 · 0 评论 -
享元模式
个人博客http://www.milovetingting.cn享元模式模式介绍享元模式是对象池的一种实现,用来尽可能减少内存使用量,它适合用于可能存在大量重复对象的场景,来缓存可共享的对象,达到对象共享、避免创建过多对象的效果,以提升性能、避免内存移除等。模式定义使用共享对象可有效地支持大量的细粒度的对象。使用场景系统中存在大量的相似对象细粒度的对象都具备较接近的外...原创 2020-02-19 00:35:45 · 120 阅读 · 1 评论 -
装饰模式
个人博客http://www.milovetingting.cn装饰模式模式介绍装饰模式也称为包装模式,结构型设计模式之一,其使用一种对客户端透明的方式来动态地扩展对象的功能,同时它也是继承关系的一种替代方案之一。模式定义动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式生成子类更为灵活。使用场景需要透明且动态地扩展类的功能时。简单使用定义Componentpu...原创 2020-02-19 00:34:19 · 81 阅读 · 0 评论 -
适配器模式
个人博客http://www.milovetingting.cn适配器模式模式介绍适配器模式,是将两个不兼容的类融合在一起,将不同的东西通过一种转换,使得它们能够协作起来。模式定义适配器模式把一个类的接口变换成客户端的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。使用场景系统需要使用现有的类,而此类的接口不符合系统的需要,即接口不兼容想要建...原创 2020-02-17 21:49:49 · 78 阅读 · 0 评论 -
组合模式
个人博客http://www.milovetingting.cn组合模式模式介绍组合模式也称为部分整体模式,结构型设计模式之一,组合模式比较简单,它将一组相似的对象看作一个对象处理,并根据一个树状结构来组合对象,然后提供一个统一的方法去访问相应的对象,以此忽略对象与对象集合之间的差别。生活中比较经典的例子就是公司的组织结构树状图。模式定义将对象组合成树形结构以表示"部分-整体"的层...原创 2020-02-17 21:47:52 · 76 阅读 · 0 评论 -
代理模式
个人博客http://www.milovetingting.cn代理模式模式介绍代理模式也称为委托模式,是一种结构型模式。模式定义为其他对象提供一种代理以控制对这个对象的访问。使用场景当无法或不想直接访问某个对象或访问对象存在困难时,可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,委托对象与代理对象需要实现相同的接口。简单使用定义接口public interf...原创 2020-02-17 21:46:10 · 72 阅读 · 0 评论 -
中介者模式
个人博客http://www.milovetingting.cn中介者模式中介者模式也称为调解者模式或调停模式。模式定义中介者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显影响。使用场景当对象间交互操作很多且每个对象的行为操作都依赖彼此时,为防止在修改一个对象的行为时,同时涉及修改很多其他对象的行为。可采用中介者模式来解决耦合的问题。将对象间多对多关系变成一对多的问...原创 2020-02-15 15:59:16 · 77 阅读 · 0 评论 -
访问者模式
个人博客http://www.milovetingting.cn访问者模式模式介绍访问者模式是一种将数据操作与数据结构分离的设计模式,它是《设计模式》中23种设计模式最复杂的一个,但它的使用频率不高。访问者模式的基本思想是,软件系统中拥有一个由许多对象构成的、比较稳定的对象结构,这些对象的类都拥有accept方法用来接受访问者对象的访问。访问者是一个接口,它拥有一个visit方法,这...原创 2020-02-15 15:56:23 · 72 阅读 · 0 评论 -
模板方法模式
个人博客http://www.milovetingting.cn模板方法模式模式介绍在面向对象开发过程中,通常会遇到这样的问题:知道一个算法的关键步骤,并确定了这些步骤的执行顺序,但,某些步骤的具体实现是未知的,如:检查代码的正确性链接相关的类库编译相关代码执行程序对于不同的程序设计语言,上述4个步骤是不一样的,但它们的执行流程是固定的,这类问题的解决方案...原创 2020-02-15 15:53:24 · 51 阅读 · 0 评论 -
迭代器模式
个人博客http://www.milovetingting.cn迭代器模式模式介绍迭代器模式又称为游标(Cursor)模式,是行为型设计模式之一。模式定义提供一种方法顺序访问一个容器对象中的各个元素,而又不需要暴露该对象的内部表示。使用场景遍历一个容器对象时。简单使用定义迭代器接口/** * 迭代器接口 * * @author 160317250 * * @p...原创 2020-02-15 15:51:45 · 53 阅读 · 0 评论 -
备忘录模式
个人博客http://www.milovetingting.cn备忘录模式模式介绍备忘录是一种行为模式,用于保存对象当前状态,并且在之后可以再次恢复到此状态。备忘录模式实现的方式需要保证被保存的对象不能从外部访问,目的是为了保护好保存的这些对象状态的完整性以及内部实现不向外部暴露。模式定义在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样,以后可将该对象...原创 2020-02-05 15:30:02 · 101 阅读 · 0 评论 -
观察者模式
个人博客http://www.milovetingting.cn观察者模式模式介绍观察者模式是一个使用率非常高的模式。它最常用的地方是GUI系统,订阅-发布系统。模式定义定义对象间一种一对多的依赖关系,使得每当一个对象改变时,所有依赖它的对象得到通知并被自动更新。使用场景关联行为场景事件多级触发场景跨系统的消息交换场景,如消息队列、事件总线的处理机制简单实现定义被观察者...原创 2020-01-17 23:55:46 · 99 阅读 · 0 评论 -
命令模式
个人博客http://www.milovetingting.cn命令模式模式介绍命令模式是行为型设计模式之一。模式定义将请求封装成一个对象,从而让用户使用不同的请求把客户端参数化;对请求排除或者记录请求日志,以及支持可撤销操作。使用场景需要抽象出待执行的动作,然后以参数的形式提供出来在不同的时刻指定、排列和执行请求。需要支持取消操作。支持修改日志功能。...原创 2020-01-17 23:54:09 · 62 阅读 · 0 评论 -
解释器模式
个人博客http://www.milovetingting.cn解释器模式模式介绍解释器模式是一种用得比较少的行为型模式,其提供了一种解释语言的语法或表达式的方式,该模式定义了一个表达式接口,通过该接口解释一个特定的上下文。模式定义给定一个语言,定义它的方法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。使用场景如果某个简单的语言需要解释执行而且可以将该...原创 2020-01-17 23:52:15 · 59 阅读 · 0 评论 -
责任链模式
个人博客http://www.milovetingting.cn责任链模式模式介绍责任链模式是行为型设计模式之一。模式定义使多个对象都有机会处理请求,从而避免了请求的发送者和接收者间的耦合。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。使用场景多个对象可以处理同一请求,但具体由哪个对象处理则在运行时动态决定。在请求处理者不明确的情况下向多个对象的...原创 2020-01-16 23:46:57 · 63 阅读 · 0 评论 -
状态模式
个人博客http://www.milovetingting.cn状态模式模式介绍状态模式中的行为是由状态来决定的,不同状态下有不同的行为。模式定义当一个对象的内在状态改变时允许其改变行为。使用场景一个对象的行为取决于它的状态,并且它必须在运行时根据状态来改变行为。代码中包含大量与对象状态有关的条件语句。简单使用定义状态接口public interface T...原创 2020-01-16 23:44:54 · 74 阅读 · 0 评论 -
策略模式
个人博客http://www.milovetingting.cn策略模式模式介绍实现某一个功能有多种算法或者策略,可以根据实际情况选择不同的算法或者策略来实现该功能,如果将这些算法或者策略抽象出来,提供一个统一的接口,不同的算法或策略有不同的实现类,这样在程序客户端就可以通过注入不同的实现对象来实现算法或者策略的动态替换,这种模式的可扩展性,可维护性更高。这就是策略模式。模式定义策...原创 2020-01-16 23:42:58 · 115 阅读 · 0 评论 -
抽象工厂模式
个人博客http://www.milovetingting.cn抽象工厂模式模式介绍抽象工厂模式,也是创建型设计模式之一。模式的定义为创建一组相关或者相互依赖的对象提供一个接口,而不需要指定它们的具体类。使用场景一个对象族有相同的约束时可以使用抽象工厂模式。如,Android,ios都有短信软件和拨号软件,两者都属于软件的范畴,但它们所在的操作系统平台不一样,这时可以使用抽象工...原创 2020-01-16 23:41:05 · 73 阅读 · 0 评论 -
工厂方法模式
个人博客http://www.milovetingting.cn工厂方法模式模式介绍工厂方法模式是创建型设计模式之一。模式定义定义一个用于创建对象的接口,让子类决定实例化哪个类。使用场景在任何需要生成复杂对象的地方,都可以使用工厂方法模式。用new就可以完成创建的对象无需使用工厂方法模式。简单实现定义抽象类Productpublic abstract class Prod...原创 2020-01-15 01:21:47 · 66 阅读 · 0 评论 -
原型模式
个人博客http://www.milovetingting.cn原型模式模式介绍原型模式是一个创建型的模式。多用于创建复杂的或者构造耗时的实例,因为这种情况下,复制一个已经存在的实例,可使程序运行更高效。模式定义用原型实例指定创建对象的种类,并通过复制这些原型创建新的对象。使用场景类初始化需要消耗非常多的资源通过new产生一个对象需要非常繁琐的数据准备或访问权限...原创 2020-01-15 01:21:26 · 64 阅读 · 0 评论 -
Builder模式
个人博客http://www.milovetingting.cnBuilder模式模式介绍Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构建流程。该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。模式定义将一个复杂对象的构建与它的表示分离,使得同样的构建可以创建不同的表示。使...原创 2020-01-15 01:20:34 · 62 阅读 · 0 评论 -
单例模式
个人博客http://www.milovetingting.cn单例模式模式介绍整个系统只需要拥有一个全局对象,这样有利于我们协调系统整体的行为。定义确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。实现单例模式主要有如下几个关键点:构造函数不对外开放,一般为private通过一个静态方法或者枚举返回单例类对象确保单例类的对象有且只有一个,尤其是...原创 2020-01-10 17:13:07 · 72 阅读 · 0 评论 -
面向对象的六大原则
个人博客http://www.milovetingting.cn面向对象的六大原则单一职责原则就一个类而言,应该仅有一个引起它变化的原因。开闭原则软件中的对象(类、模块、函数等)应该对于扩展是开放的,对于修改是封闭的。遵循开闭原则的重要手段是通过抽象。里氏替换原则所有引用基类的地方必须能透明地使用其子类的对象。依赖倒置原则高层模块不应该依赖低层模块,两者都应该依赖其抽象...原创 2020-01-10 17:12:02 · 72 阅读 · 0 评论