
设计模式系列
Ethan_pika
一个爱养花的程序员
展开
-
面向对象设计原则
概述可维护性(Maintainability):指软件能够被理解、改正、适应及扩展的难易程度 可复用性(Reusability):指软件能够被重复使用的难易程度 面向对象设计的目标之一在于支持可维护性复用,一方面需要实现设计方案或者源代码的复用,另一方面要确保系统能够易于扩展和修改,具有良好的可维护性 面向对象设计原则为支持可维护性复用而诞生 指导性原则,非强制性原则 每一个设计模式...原创 2019-11-21 10:29:53 · 584 阅读 · 0 评论 -
设计模式之:迭代器模式
目录迭代器模式概述 迭代器模式的结构与实现 迭代器模式的应用实例 使用内部类实现迭代器 .NET内置迭代器 迭代器模式的优缺点与适用环境迭代器模式概述电视机遥控器与电视机示意图分析:电视机<- ->存储电视频道的集合 <- ->聚合类(Aggregate Classes) 电视机遥控器<- -> 操作电视频道<- -&g...原创 2019-11-21 10:28:45 · 2498 阅读 · 0 评论 -
设计模式之:解释器模式
目录解释器模式概述 文法规则和抽象语法树 解释器模式的结构与实现 解释器模式的应用实例 解释器模式的优缺点与适用环境解释器模式概述加法/减法解释器示意图:分析:C#语言无法直接解释类似“1 + 2 + 3 – 4 + 1”这样的字符串。定义一套文法规则来实现对这些语句的解释,即设计一个自定义语言。基于现有的编程语言 -> 面向对象编程语言 -> 解释器模式。...原创 2019-11-21 10:27:45 · 948 阅读 · 0 评论 -
设计模式之:命令行模式
目录命令模式概述 命令模式的结构与实现 命令模式的应用实例 实现命令队列 记录请求日志 实现撤销操作 宏命令 命令模式的优缺点与适用命令模式概述在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计,使得请求发送者与请求接收者消除彼此之间的耦合,让...原创 2019-11-21 10:27:18 · 2523 阅读 · 0 评论 -
设计模式之:代理模式
目录模式动机与定义 模式结构与分析 模式实例与解析 模式效果与应用 模式扩展模式动机与定义模式动机:在某些情况下,一个客户不想或者不能直接引用一个对象,此时可以通过一个称之为“代理”的第三者来实现间接引用。代理对象可以在客户端和目标对象之间起到中介的作用,并且可以通过代理对象去掉客户不能看到的内容和服务或者添加客户需要的额外服务。如在某台远程服务器提供了一个功能强大的加密算法...原创 2019-11-21 10:27:02 · 1051 阅读 · 0 评论 -
设计模式之:职责链模式
目录行为型模式行为型模式概述 行为型模式简介职责链模式模式动机与定义 模式结构与分析 模式实例与解析 模式效果与应用 模式扩展行为型模式概述行为型模式(Behavioral Pattern)关注系统中对象之间的交互,研究系统在运行时对象之间的相互通信与协作,进一步明确对象的职责 行为型模式:不仅仅关注类和对象本身,还重点关注它们之间的相互作用和职责划分类行为型模...原创 2019-11-21 10:26:46 · 340 阅读 · 0 评论 -
设计模式之:享元模式
目录享元模式概述 享元模式的结构与实现 享元模式的应用实例 有外部状态的享元模式 单纯享元模式和复合享元模式 享元模式的优缺点与适用环境享元模式概述动机:如果一个软件系统在运行时所创建的相同或相似对象数量太多,将导致运行代价过高,带来系统资源浪费、性能下降等问题 如何避免系统中出现大量相同或相似的对象,同时又不影响客户端程序通过面向对象的方式对这些对象进行操作呢?字符享...原创 2019-11-20 10:41:46 · 331 阅读 · 0 评论 -
设计模式之:外观模式
目录外观模式概述 外观模式的结构与实现 外观模式的应用实例 抽象外观类 外观模式的优缺点与适用环境外观模式概述两种喝茶方式示意图:分析:一个客户类需要和多个业务类交互,而这些需要交互的业务类经常会作为一个整体出现 引入一个新的外观类(Facade)来负责和多个业务类【子系统(Subsystem)】进行交互,而客户类只需与外观类交互 为多个业务类的调用提供了一个统一...原创 2019-11-20 10:41:18 · 220 阅读 · 0 评论 -
设计模式之:装饰器模式
目录装饰模式概述 装饰模式的结构与实现 装饰模式的应用实例 透明装饰模式与半透明装饰模式 装饰模式的优缺点与适用环境装饰模式概述现实生活中的“装饰”实例装饰模式分析:可以在不改变一个对象本身功能的基础上给对象增加额外的新行为 是一种用于替代继承的技术,它通过一种无须定义子类的方式给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系 引入了装饰类,在装饰类...原创 2019-11-20 10:41:03 · 414 阅读 · 0 评论 -
设计模式之:组合模式
目录组合模式动机与定义 组合模式结构与分析 组合模式实例与解析 组合模式效果与应用 组合模式扩展组合模式动机与定义模式动机:对于树形结构,当容器对象(如文件夹)的某一个方法被调用时,将遍历整个树形结构,寻找也包含这个方法的成员对象(可以是容器对象,也可以是叶子对象,如子文件夹和文件)并调用执行。(递归调用) 由于容器对象和叶子对象在功能上的区别,在使用这些对象的客户端代...原创 2019-11-20 10:40:48 · 712 阅读 · 0 评论 -
设计模式之:桥接模式
目录桥接模式概述 桥接模式的结构与实现 桥接模式的应用实例 桥接模式与适配器模式的联用 桥接模式的优缺点与适用环境桥接模式概述毛笔与蜡笔的故事蜡笔:颜色和型号两个不同的变化维度(即两个不同的变化原因)耦合在一起,无论是对颜色进行扩展还是对型号进行扩展都势必会影响另一个维度 毛笔:颜色和型号实现了分离,增加新的颜色或者型号对另一方没有任何影响分析:画笔中存在的两个独...原创 2019-11-20 10:40:31 · 408 阅读 · 0 评论 -
设计模式之:适配器模式
目录结构型模式 适配器模式概述 适配器模式的结构与实现 适配器模式的应用实例 缺省适配器模式 双向适配器模式 适配器模式的优缺点与适用环境结构型模式结构型模式(Structural Pattern)关注如何将现有类或对象组织在一起形成更加强大的结构。不同的结构型模式从不同的角度组合类或对象,它们在尽可能满足各种面向对象设计原则的同时为类或对象的组合提供一系列巧妙的解决方案...原创 2019-11-20 10:40:16 · 465 阅读 · 0 评论 -
设计模式之:单例模式
目录单例模式概述 单例模式的结构与实现 单例模式的应用实例 饿汉式单例与懒汉式单例 单例模式的优缺点与适用环境单例模式概述Windows任务管理器:在正常情况下只能打开唯一一个任务管理器如何保证一个类只有一个实例并且这个实例易于被访问?全局变量:可以确保对象随时都可以被访问,但不能防止创建多个对象 让类自身负责创建和保存它的唯一实例,并保证不能创建其他实例,它还提供一个...原创 2019-11-20 10:39:50 · 144 阅读 · 0 评论 -
设计模式之:原型模式
目录原型模式概述 原型模式的结构与实现 原型模式的应用实例 原型管理器 原型模式的优缺点与适用环境原型模式概述孙悟空“拔毛变小猴”实现自我复制:孙悟空:根据自己的形状复制(克隆)出多个身外身 软件开发:通过复制一个原型对象得到多个与原型对象一模一样的新对象原型模式的定义:原型模式:使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。 Prototy...原创 2019-11-20 10:39:24 · 615 阅读 · 0 评论 -
设计模式之:建造者模式
目录建造者模式概述 建造者模式的结构与实现 建造者模式的应用实例 指挥者类的深入讨论 建造者模式的优缺点与适用环境建造者模式概述复杂对象:如何将汽车的各个复杂部件组装成一辆完整的汽车并返回给用户?建造者模式可以将部件本身和它们的组装过程分开,关注如何一步步创建一个包含多个组成部分的复杂对象,用户只需要指定复杂对象的类型即可得到该对象,而无须知道其内部的具体构造细节。建造者...原创 2019-11-20 10:38:35 · 952 阅读 · 0 评论 -
设计模式之:抽象工厂模式
目录产品等级结构与产品族 抽象工厂模式概述 抽象工厂模式的结构与实现 抽象工厂模式的应用实例 开闭原则的倾斜性 抽象工厂模式的优缺点与适用环境产品等级结构与产品族工厂方法模式:每个具体工厂只有一个或者一组重载的工厂方法,只能生产一种产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销抽象工厂模式:一个工厂可以生产一系列产品(一族产品),极大减少了工厂类的数量概念...原创 2019-11-20 10:41:35 · 321 阅读 · 0 评论 -
设计模式之:简单工厂模式
目录:创建型模式 简单工厂模式概述 简单工厂模式的结构与实现 简单工厂模式的应用实例 创建对象与使用对象 简单工厂模式的简化 简单工厂模式的优缺点与适用环境创建型模式创建型模式(Creational Pattern)关注对象的创建过程 创建型模式对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离,对用户隐藏了类的实例的创建细节 创建型模式描述如何将对象...原创 2019-11-19 10:39:44 · 496 阅读 · 0 评论 -
Interview100-72 Singleton模式的几种实现方法
主要思想单例模式属于常见设计模式中的一种,且应用较多,它主要是使一个类的实例数量保持一个,主要实现的思想为:将该类的构造方法设为私有,外部无法直接使用该类的构造函数进行实例化这个类的对象。外部类只能使用该类提供的静态方法创建该类的实例对象。在该静态方法中,通过对该类的实例对象进行存在性判断,若已经存在则直接返回该实例对象,若不存在,则通过调用私有构造函数进行创建后并返回。它具有多种实现方式。...原创 2019-03-02 16:17:44 · 217 阅读 · 0 评论 -
Java设计模式系列文章
设计模式内容面向对象设计原则 设计模式之:简单工厂模式 设计模式之:抽象工厂模式 设计模式之:建造者模式 设计模式之:原型模式 设计模式之:单例模式 设计模式之:适配器模式 设计模式之:桥接模式 设计模式之:组合模式 设计模式之:装饰器模式 设计模式之:外观模式 设计模式之:享元模式 设计模式之:职责链模式 设计模式之:代理模式 设计模式之:命令行模式 设计模式之...原创 2019-02-25 00:04:16 · 186 阅读 · 0 评论