架构设计
文章平均质量分 60
ss
lpblog
这个作者很懒,什么都没留下…
展开
-
软件设计模式及体系结构之状态模式
状态模式概述分析状态模式定义状态模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类又名状态对象( Objects for States)用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象状态可以灵活变化对于客户端而言,无须关心对象状态的转换以及对象所处的当前状态,无论对于何种状态的对象,客户端都可以一致处理Context(环境类)State(抽象状态类)Concretestate(原创 2021-12-09 20:39:46 · 360 阅读 · 0 评论 -
软件设计模式及体系结构之策略模式
1.策略模式概述前言分析:1.实现某个目标的途径不止一条,可根据实际情况选择一条合适的途径2.软件开发:一.多种算法,例如排序、查找等二.使用硬编码(Hard Coding)实现将导致系统违背开闭原则,扩展性差,且维护困难可以定义一些独立的类来封装不同的算法,每一个类封装一种具体的算法→策略类一.策略模式的定义策略模式:定义一系列算法,将每一个算法装起来,并让它们可以相互替换。策略模式让算法可以独立于使用它的客户变化。又称为改策( Policy)模式每一个封装算法的类称之为策略原创 2021-12-09 20:21:07 · 735 阅读 · 0 评论 -
软件设计模式及体系结构之中介者模式
前言中介者模式概述√QQ聊天的两种方式1)用户与用户直接聊天,用户与用户之间存在多对多的联系,这将导致系统中用户之间的关系非常复杂用户如果要将相同的信息或文件发送给其他所有用户,必须一个一个地发送2)通过QQ群聊天,用户只需要将信息或文件发送到或上传为群共享文件即可,群的作用就是将发送者所发送的信息和文件转发给每一个接收者,将极大地减少系统中用户之间的两两通信。软件开发网状结构:多对多联系将导致系统非常复杂,几乎每个对象都需要与其他对象发生相互作用,而这种相互作用表现为一个对象与另外一个对象原创 2021-12-04 21:57:35 · 627 阅读 · 0 评论 -
软件设计模式及体系结构之命令模式
前言分析现实生活相同的开关可以通过不同的电线来控制不同的电器开关←→请求发送者电灯←→请求的最终接收者和处理者开关和电灯之间并不存在直接耦合关系,它们通过电线连接在一起,使用不同的电线可以连接不同的请求接收者1.命令模式概述软件开发按钮←→请求发送者事件处理类←→请求的最终接收者和处理者发送者与接收者之间引入了新的命令对象(类似电线),将发送者的请求封装在命令对象中,再通过命令对象来调用接收者的方法相同的按钮可以对应不同的事件处理类将请求发送者和接收者完全解耦发送者与接收者之间原创 2021-12-04 21:26:24 · 403 阅读 · 0 评论 -
软件设计模式及体系结构之迭代器模式
前言1.电视机<→存储电视频道的集合<→聚合类2.电视机遥控器<→操作电视频道<>迭代器(Iterator)3.访问一个聚合对象中的元素但又不需要暴露它的内部分析1.聚合对象的两个职责存储数据,聚合对象的基本职责遍历数据,既是可变化的,又是可分离的2.将遍历数据的行为从聚合对象中分离出来,封装在迭代器对象中3.由迭代器来提供遍历聚合对象内部数据的行为,简化聚合对象的设计,更符合单一职责原则一.迭代器模式的定义迭代器模式:提供一种方法顺序访问一个聚合对原创 2021-12-02 21:45:38 · 376 阅读 · 0 评论 -
软件设计模式及体系结构之访问者模式
前言医院处方单处理示意图分析一.处方单1.药品信息的集合,包含一种或多种不同类型的药品信息2.不同类型的工作人员(例如划价人员和药房工作人操作同一药品信息集合时将提供不同的处理方式3.能会增加新类型的工作人员来操作处方单二.软件开发处方单 ↔对象结构药品信息↔元素工作人员↔访问者√对象结构中存储了多种不同类型的对象信息√对同一对象结构中的元素的操作方式并不唯一,可能需要提供多种不同的处理方式√还有可能需要增加新的处理方式一.定义访问者模式:表示一个作用于某对象结构中的各个元素原创 2021-12-02 21:19:52 · 162 阅读 · 0 评论 -
软件设计模式及体系结构之桥接模式
桥接模式前言分析:蜡笔:颜色和型号两个不同的变化维度(即两个化原因)耦合在一起,无论是对颜色进行扩展还对型号进行扩展都势必会影响另一个维度毛笔:颜色和型号实现了分离,增加新的颜色或者型号对另一方没有任何影响1.桥接模式的定义在软件开发中如何将多个变化维度分离?桥接模式:将抽象部分与它的实现部分解耦,使得两者都能够独立变化.1.又被称为柄体( Handle and body)模式或接口( Interface)模式2.用抽象关联取代了传统的多层继承3.将类之间的静态继承关系转换为动态的原创 2021-11-29 20:25:18 · 2048 阅读 · 0 评论 -
软件设计模式及体系结构之外观模式
前言分析1.一个客户类需要和多个业务类交互,而这些需要交互的业务类经常会作为一个整体2.引入一个新的外观类(Facade)来负责和多个业务类子系统( Subsystem)进行交互,而客户类只需与外观类交互3.为多个业务类的调用提供了一个统一的入口,简化了类与类之间的交互4.没有外观类:每个客户类需要和多个子系统之间进行复杂的交互,系统的耦合度将很大。5.引入外观类:客户类只需要直接与外观类交互,客户类与子系统之间原有的复杂引用关系由外观类来实现从而降低了系统的耦合度。...原创 2021-11-27 21:31:08 · 1759 阅读 · 0 评论 -
软件设计模式及体系结构之适配器模式(Adapter)
前言现实生活中的适配器1.管箍内口径一段粗,一段细,其两端都带有螺纹口,分别与粗水管、细水管连接.这样,通过管箍将本来口径不同的两个水管连接了起来.这里管箍可以称之为适配器(Adapter)2.结构型软件设计模式的主要目的是将不同的类和对象组合在一起,形成更大或者更复杂的结构体一.适配器的概念与机制适配器模式:将一个类的接口转换成客户希望的另一个接配器模式让那些接口不兼容的类可以一起工作.为了解决接口不一致的问题,两个软件模块之间往往也需要通过一适配器类进行"适配"二.适配器模式的结构与实现原创 2021-11-25 21:05:06 · 1684 阅读 · 0 评论 -
软件设计模式及体系结构之组合模式
组合模式:组合多个对象形成树形结构以表示具有部分-整体关系的层次结构。组合模式让客户端可以统一对待单个对象和组合对象。对象结构型模式1.又称为“部分-整体”(Part- Whole)模2.将对象组织到树形结构中,可以用来描述整体与部分的关系组合模式包含以下3个角色Component(抽象构件)Leaf(叶子构件)Composite(容器构件)原创 2021-11-24 16:06:16 · 1340 阅读 · 0 评论 -
软件设计模式与体系结构(入门基础知识)
第一章类之间的关系(四大关系)关联关系( Association)是类与类之间最常用的1.它是一种结构化关系,用于表示一类对象与另一类对象之间有联系2.在UML类图中,用实线连接有关联的对象所对应的类3.使用Java、C++等OOP编程语言实现关联关系时,通常将个类的对象作为另一个类的属性在使用类图表示关联关系时可以在关联线上标注角色名...原创 2021-11-11 21:37:45 · 4327 阅读 · 0 评论 -
软件设计模式及体系结构之单例模式
1.模式动机一个大公司的打印室虽然可以有多台打印机,但是打印管理系统中只有一个打印任务控制对象个人理解为任务管理器只有一个,一个系统中,重复打开多个任务管理器事实是可以的。但是只有一个在调度,其他是同步的。2.模式定义1.单例模式( Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法.2.单例模式的要点有一.某个类只能有一个实例二.必须自行创建这个实例三.必须自行向整个系统提供这个实例3.单例模式原创 2021-11-20 15:34:42 · 1102 阅读 · 0 评论 -
软件设计模式及体系结构之工厂方法模式
1.工厂方法模式模式定义工厂方法模式( Factory Method Pattern)又称为工厂模式,也叫虚拟构造器( Virtual constructor)模式或者多态工厂( Polymorphic Factory)模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。2.模式结构工厂方法模式包含如下角色Product原创 2021-11-18 21:11:51 · 1443 阅读 · 0 评论