行为型:迭代器模式

行为型:迭代器模式

概述 对于集合对象而言,肯定会涉及到对集合的添加和删除操作,同时也肯定支持遍历集合元素的操作,我们此时可以把遍历操作放在集合对象中,但这样的话,集合对象既承担太多的责任了。 面向对象设计原则中有一条就是单一职责原则,所有我们要尽可能地分离这些职责,用不同的类取承担不同的责任,迭代...

行为型:访问者模式

行为型:访问者模式

概述 访问者模式是一种将数据操作和数据结构分离的设计模式。 定义 表示要对对象结构的元素执行的操作。它使您可以定义新操作,而无需更改其所操作元素的类。该模式具有行为目的,并且适用于对象。 角色 Visitor:抽象访问者类 ConcreteVisitor:具体访问者类 Eleme...

行为型:观察者模式

行为型:观察者模式

概述 建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应。在此,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展。 定...

架构模式:MVVM模式

架构模式:MVVM模式

概述 MVVM 模式(Model-View-ViewModel)是一种软件架构模式,它是从 MVC(Model-View-Controller)模式演变而来的,旨在解决 MVC 模式中视图(View)和模型(Model)之间的紧密耦合问题。 MVVM 模式将应用程序分为三个主要组...

行为型:模板方法模式

行为型:模板方法模式

概述 父类抽象出子类共有的方法,并且自己实现他 子类实现各自不同的业务 父类实现的方法按照一定的逻辑调用抽象方法 为了反之子类重写父类实现的方法父类定义为final方法 定义 一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方...

创建型:单例模式

创建型:单例模式

概念 保证一个类仅有一个实例,并提供一个该实例的全局访问点 场景 应用程序的日志应用 读取配置文件 数据库连接池 多线程线程池 必须有一个类的实例,并且必须可以从一个著名的访问点访问它 当唯一的实例可以由子类扩展,并且客户端应该能够使用扩展的实例而无需修改其代码 实现 普通实现 ...

结构型:装饰器模式

结构型:装饰器模式

概述 一般有两种方式可以实现给一个类或对象增加行为: 继承机制 关联机制 继承机制 使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增加行为的方式和时机。 关联机制 即将一个类的对...

行为型:解释器模式

行为型:解释器模式

概述 解释器这个名词想必大家都不会陌生,比如编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。诸如此类的例子也有很多,比如编译器、正则表达式等等。 如果一种特定类型的问题发生的频率足够高,那么可能就...

结构型:外观模式

结构型:外观模式

概述 隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。 定义 外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模...

结构型:桥接模式

结构型:桥接模式

概述 设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案: 第一种设计方案是为每一种形状都提供一套各种颜色的版本。 第二种设计方案是根据实际需要对形状和颜色进行组合 对于有两个变化...

扫一扫二维码分享