23设计模式
三村阿明
没有比人更高的山
没有比脚更远的路
展开
-
工厂模式
定义 工厂模式属于创建类型模式的一种,主要适用于创建多个简单对象。 其最初的设计中,包含如下角色: 抽象产品角色:它一般是具体产品继承的父类或者实现的接口 具体产品:需要生成的目标对象 产品工厂:负责根据传入的标志生成相应的产品对象 工厂模式中分为三种实现,简单工厂,工厂方法和抽象工厂,随着产品和工厂的关系解偶而逐步降低类之间的耦合度,后面会详细解释相应的实现 简单工厂 public class ...原创 2019-06-21 08:19:44 · 102 阅读 · 0 评论 -
建造者模式
定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 所谓的对象构建是指创建一个对象,并完成初始化操作,使对象能被客户端正确访问,比如你创建一个车new Car(),但是该车都还没有组装引擎,方向盘什么的,客户端根本不能开动。而“同样的构建过程可以创建多种标示”的意思是对象的初始化允许客户端参与和控制,也就是该模式会抽象出对象行为。 角色介绍 抽象建造者角色:提供一...原创 2019-06-21 18:08:27 · 74 阅读 · 0 评论 -
原型模式
定义 Specify the kind of objects to create using a prototypical instance, and create new objects by copying this prototype. (使用原型实例指定将要创建的对象类型,通过复制这个实例创建新的对象。) 从定义中我们我们可以发现,该模式的前提是首先需要有一个对象,然后基于已有的对象...原创 2019-06-22 20:10:29 · 110 阅读 · 0 评论 -
责任链模式
定义 责任链模式(Chain of Responsibility Pattern):避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。职责链模式是一种对象行为型模式。 从定义可以看出,责任链模式将请求发送者和处理者解偶,即发送方不用知道谁来处理他的请求(没有类依赖),同时集中的处理者结构允许多个处理者共享请求和分...原创 2019-06-26 15:43:16 · 95 阅读 · 0 评论 -
代理模式
定义 代理模式(Proxy Pattern):给某一个对象提供一个代理或者占位符,并由代理对象控制对原对象的访问。 我的理解是代理模式是对真实对象行为的访问控制,而非对其本身行为的加强,这样既能保证真实对象的功能纯净性,又允许对其功能流程进行修改,同时能保证对客户端透明。而包装模式则是对真实对象行为的加强。比如拳击手与其经纪人的关系是代理关系,而拳击手与其拳击手套的关系则偏重于包装关系。 实例...原创 2019-07-02 14:43:45 · 116 阅读 · 0 评论 -
组合模式
定义 将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性 释义: 该模式属于结构型模式,主要用于处理对象与对象之间的包含关系和分层关系,比如文件系统,XML文件等 单个对象与组合对象的使用一致性表示需要抽象出其相同的地方,比如文件系统中文件和目录都具有文字,是否隐藏,权限控制等。 角色介绍: Component 是组合中的对象声明接口,在适当...原创 2019-06-24 16:20:49 · 94 阅读 · 0 评论 -
装饰器模式
定义 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装 装饰器模式是对象结构动态修改方式,相较于继承关系,装饰器更加灵活,和代理模式相比,装饰器模式更偏重与对象本质行为或者属性的加强,比如窗口系统添加主题。而代理模式则更偏重于非本质行为的添加,比如文件系统中添加权限管理和修改日志。...原创 2019-07-10 22:25:56 · 110 阅读 · 0 评论 -
外观模式
定义 要求一个子系统的外部和其内部的通信必须使用一个统一的对象进行,外观模式提供一个高层次的接口,使得子系统更易于使用 外观模式本质上是在子系统和客户端之间加了一层访问入库层(中间层),中间层可以由子系统提供,也可以由客户端自己封装。如果子系统提供,则该层负责两件事:1.控制子系统的访问范围 2.封装自己实现细节,简化客户端使用难度。 如果由客户端提供,则一般是用作隔离和适配,通过减少直接依赖...原创 2019-07-15 20:43:23 · 111 阅读 · 0 评论 -
策略模式
定义 策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式 从定义中来看,策略模式的目标是优化类的行为选择,将选择行为和行为本身实现细节拆分,达到选择行为只控制流程,比如你要从A地到达B地,现在你有三种交通方式,汽车,自行车,火车。三种方式的耗时,路线选择都不一样。如果采取策略模式来描述这个场景,则选择何种交通方式就是在控制流程...原创 2019-07-12 08:55:18 · 105 阅读 · 0 评论