Python设计模式 - UML - 组合结构图(Composite Structure Diagram)
摘要:简介 组合结构图用来显示组合结构或部分系统的内部构造,包括类、接口、包、组件、端口和连接器等元素,是UML2.0的新增图。 组合结构图侧重复合元素的方式展示系统内部结构,包括与其他系统的交互接口和通信端口,各部分的配置和协作,组件相关的服务,以及各服务之间的通信和调用。 组合结构图建模步骤 - 确定
阅读全文
Python设计模式 - UML - 通信图(Communication Diagram)
摘要:简介 通信图表示对象之间的消息往来,是表述时序图中信息交互的另一种UML图,介绍完时序图就要对照学习一下通信图,二者是一体两面的。 通信图和时序图可以相互转换,二者的侧重点不同,通信图侧重哪些对象发送或接收了哪些消息,时序图侧重对象之间消息交互的时间顺序。 通信图建模步骤 - 确定系统需要和哪些外部
阅读全文
Python设计模式 - UML - 交互概述图(Interaction Overview Diagram)
摘要:简介 交互概述图是将不同交互图衔接在一起的图,属于UML2.0的新增图。交互概述图并没有引入新的建模元素,其主要元素来自于活动图和时序图。交互概述图侧重从整体上概览交互过程中的控制流,包括交互图之间的事件或消息流。 当前交互概述图主要应用于活动图与时序图之间的协作,主要有两种形式:交互和交互应用,前
阅读全文
Python设计模式 - UML - 定时图(Timing Diagram)
摘要:简介 定时图也是一种交互图,用来描述对象或实体随时间变化的状态或值,及其相应的时间或期限约束。定时图应用较广,并不局限于软件工程领域。 定时图侧重与时间线相关的值或状态的改变,这些改变可能来自于收到消息、发生事件、系统内部变化或者由时间流逝带来的改变。 因为定时图是UML2.0中的新增图,所以一部分
阅读全文
Python设计模式 - UML - 状态图(State Machine Diagram)
摘要:简介 状态图主要用于描述对象在其生命周期中各种状态、状态之间的转换过程、触发状态转换的各种事件(条件)及执行的动作。 状态图构建步骤 - 找出适合用状态图描述的类、确定类中需要做状态图的重要对象 - 确定重要对象的主要状态、状态之间的转换事件、条件、动作、初次态等 - 细化状态之间的复杂转换和详细事
阅读全文
Python设计模式 - UML - 时序图(Sequence Diagram)
摘要:简介 时序图表示参与者与对象之间、对象与对象之间的动态交互过程及时序关系。 时序图详细而直观地展示了对象随时间变化的状态、调用关系和消息时序,时序图中的主要元素有:参与者(Actor), 对象(Object),生命线(Lifetime)、控制焦点(Focus of Control)、消息(Messa
阅读全文
Python设计模式 - UML - 活动图(Activity Diagram)
摘要:简介 活动图描述从一个活动到另一个活动的执行顺序、约束条件、引用对象及状态结果等方面的控制流,适用于对业务用例、工作流程或程序实现建模。 活动图建模步骤 - 确定活动图的范围和边界,对哪些工作流、哪些活动、哪些对象建模 - 确定工作流的开始状态和结束状态 - 确定工作流的各个活动、活动之间的转换、活
阅读全文
Python设计模式 - UML - 对象图(Object Diagram)
摘要:简介 对象图和类图的基本概念是类似的,可以看作类图在系统某一时刻的镜像,显示了该时刻系统中参与交互的各个对象以及它们之间的关系。 对象图的元素包括对象、链接、包,元素之间的关系和类图相似。 对象图建模步骤 - 参照相应的类图确定参与交互的各个对象,通常类在"class", "new", "exten
阅读全文
Python设计模式 - UML - 用例图(Use Case Diagram)
摘要:简介 用例图主要是从用户的角度出发对软件产品的功能及执行者进行描述的。 用例图是从需求分析到软件交付的第一步,图示化展示参与者与参与者之间、参与者与用例之间、用例与用例之间的关系,帮助开发人员更好的理解系统的功能。 用例图在使用UML的开发过程中非常重要,需求分析、任务分解、界面设计、类与接口的抽象
阅读全文
Python设计模式 - UML - 组件图(Component Diagram)
摘要:简介 组件图又称构建图,用于显示系统各组件及各组件关系的物理视图。 组件图通常包括组件、接口、关系、端口和连接器,用来显示程序代码中相应的模块、源文件或源文件集合之间的依赖和泛化关系。 组件图中的组件通常由类图中的一个或多个类(对象)实现为系统中的模块、源文件、过程文件或可执行文件,最终构成系统的绝
阅读全文
Python设计模式 - UML - 部署图(Deployment Diagram)
摘要:简介 部署图也称配置图,用来显示系统中硬件和软件的物理架构。从中可以了解到软件和硬件组件之间的物理拓扑、连接关系以及处理节点的分布情况。 部署图建模步骤 - 找出需要进行部署的各类节点,如网络硬件设备、服务器硬件设备、及部署在硬件设备上的软件系统等 - 确定各类节点之间的连接关系及通信方式 - 从性
阅读全文
Python设计模式 - UML - 包图(Package Diagram)
摘要:简介 包图是对各个包及包之间关系的描述,展现系统中模块与模块之间的依赖关系。一个包图可以由任何一种UML图组成,可容纳的元素有类、接口、组件、用例和其他包等。包是UML中非常常用的元素,主要作用是分类、容纳其他元素。包与包之间的关系有泛化、细化和依赖,主要取决于包内部成员之间的关系。 包图建模步骤
阅读全文
Python设计模式 - UML - 类图(Class Diagram)
摘要:简介 类图是面向对象分析和设计的核心,用来描述系统各个模块中类与类之间、接口与接口之间、类与接口之间的关系,以及每个类的属性、操作等特性,一般在详细设计过程中实施。 类图本身就是现实世界的抽象,是对系统中各种概念进行建模,并描绘出它们之间的关系,所以类图关注的对象就是元素及元素之间的关系。 类图建模
阅读全文
Python设计模式 - UML - 总览
摘要:说到设计模式就不得不涉及建模思想,说到建模思想自然而然会应用UML,目前业界开源的UML工具很多,用起来也非常便捷。近几年来随着软件应用领域开发模式转向快速迭代试错,UML在敏捷开发,尤其是web及mobile开发领域应用越来越少。 就国内软件行业发展现状来说,稳定成熟的商业软件凤毛麟角,初具雏形的
阅读全文
Python设计模式 - 创建型 - 单例模式(Singleton) - 十种
摘要:对于很多开发人员来说,单例模式算是比较简单常用、也是最早接触的设计模式了,仔细研究起来单例模式似乎又不像看起来那么简单。我们知道单例模式适用于提供全局唯一访问点,频繁需要创建及销毁对象等场合,的确方便了项目开发,但是单例模式本身也有一定的局限性,如果滥用则会给后续软件框架的扩展和维护带来隐患。 单例
阅读全文
Python设计模式 - 基础 - 七大基本原则
摘要:提倡使用设计模式,主要出发点就是实现代码复用,增加代码的扩展性和可维护性。如何设计出简洁、易懂、灵活、优美的代码结构的确是一门学问,透彻理解并践行如下七大原则通常都能取得基本满意的结果: - 单一职责原则(Single Responsibility Principle):一个类负责一项职责,单纯的快
阅读全文
Python设计模式 - 基础 - 类/接口之间的六种关系
摘要:在程序中需要把世间万物抽象成相应的类,现实世界中物与物之间的关系和程序中类与类之间的关系相对应,因为世间万物是普遍联系的,所以程序中类与类之间也不是孤立的。在系统分析和框架设计中,根据面向对象机制的三大特性:封装、继承、多态,归纳和扩展出类与类之间六种不同的关系: - 依赖关系Dependency:
阅读全文
Python设计模式 - 基础 - 封装 & 继承 & 多态
摘要:面向对象的核心是对象,世间万物都可以看作对象,任何一个对象都可以通过一系列属性和行为来描述,可以包含任意数量和类型的数据或操作。类是用来描述具有相同属性和方法的所有对象的集合。类通常是抽象化的概念,而对象表示具体的事物。 要想熟悉并灵活运用类和对象解决项目中的实际问题,首先需要透彻了解面向对象的三大
阅读全文
Python设计模式 - 总览(更新中...)
摘要:最近打算重构部分python项目,有道是"工欲善其事,必先利其器",所以有必要梳理一下相关设计模式。每次回顾基本概念或底层实现时都会有一些新的收获,希望这次也不例外。 本系列打算先简略介绍面向对象语言的通用特性作为铺垫,这也是设计模式的基础,然后详细介绍python相关的设计模式,辅以简单、易懂、常
阅读全文