刷新
读软件设计的要素04概念的关系

博主头像 1. 概念的关系 1.1. 概念是独立的,彼此间无须相互依赖 1.1.1. 一个概念是应该独立地被理解、设计和实现的 1.1.2. 独立性是概念的简单性和可重用性的关键 1.2. 软件存在依赖性 1.2.1. 不是说一个概念需要依赖另一个概念才能正确运行 1.2.2. 只有当一个概念存在时,包含另一 ...

读软件设计的要素03概念的组合

博主头像 1. 概念的组合 1.1. 概念不像程序那样,可以用较大的包含较小的 1.1.1. 每个概念对用户来说都是平等的,软件或系统就是一组串联运行的概念组合 1.2. 概念是通过操作来同步组合的 1.2.1. 同步并不增加新的概念操作,但会限制已有的操作,从而消除一些独立概念可能会出现的操作序列 1.3. ...

读软件设计的要素02概念的目的

博主头像 1. 要素 1.1. 概念的定义包括名称、目的、状态、操作和操作原则 1.2. 操作原则(operational principle) 1.2.1. 操作原则用于展示如何通过操作实现目的,这是理解概念的关键 1.2.2. 展示如何通过操作的组合实现概念的目的,包含一个或多个典型的使用场景 1.2.3 ...

读软件设计的要素01概念

博主头像 1. 概念 1.1. 一个软件,从运行于手机上的最小程序到大型的企业系统,都是由概念组成的,每个概念都是独立的功能单元 1.2. 软件中的可用性问题,经常可以追溯到其底层概念 1.2.1. 概念帮助识别软件的不可用性 1.3. 概念都是以同样形式在各种软件中重复使用的 1.3.1. 将设计分解为最基 ...

设计模式之命令模式

博主头像 命令模式(Command Pattern),给大家的第一感觉,就是给程序发送命令,比如:启动、暂停,然后程序根据接收到的命令直接执行就行。这样的理解相对来说比较狭义,来看下命令模式官方的定义:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便 ...

设计模式之备忘录模式

博主头像 备忘录模式(Memento Pattern)官方的定义是这样的:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。它是面向对象的23种设计模式中的一种,属于行为模式的范围。直白点说就是:我们可以在不暴露更多字段的前提下,直接将某个对象 ...

信息系统设计速查表

博主头像 信息系统设计速查表需求收集功能性需求:通过用户访谈、问卷调查和市场分析来确定系统必须实现的功能。 非功能性需求:定义性能基准(如响应时间)、安全性要求(如数据加密标准,传输加密)、可靠性标准(如系统的正常运行时间, MTTR)。 用户故事:使用敏捷方法论,如Scrum,来创建和优先级排序用户故事。 ...

设计模式之迭代器模式

博主头像 迭代器模式很多人都熟悉,但是什么是迭代器,为什么要用迭代器?这个很多人就很难做出具体回答了,只是知道如果有了迭代器,那么我们就能foreach遍历了,方便循环处理。这只是对迭代器的用途,进行了回答,foreach语法是java1.5时加入的语法糖,那么在这之前呢,之前是怎么做的?要知道并不是所有容器 ...

Logging日志

博主头像 日志处理logging 一、日志输出 日志默认的输出等级为:waring级别及以上的等级 修改日志的默认输出等级通过logging.basicConfig(level='INFO') 记录日志打印时间:logging.basicConfig(format=console_fmt) console_f ...

设计模式——六大原则

博主头像 一、 六大设计原则 1. 单一职责原则:应该有且仅有一个原因引起类的变更 2. 里氏替换原则:子类可替换父类。 a) 子类必须完全实现父类的方法 b) 子类可以有自己的个性 c) 子类实现父类方法时,入参可放大 d) 子类实现父类方法时,输出参数可缩小 3. 依赖倒置原则:高层模块不应该依赖底层模块 ...

事件总线的设计与实现

博主头像 事件总线(在有些框架中也称时间聚合器,如Prism的EventAggregater)是订阅-发布模式的一种实现,类似观察者模式,相对于观察者模式,事件总线更灵活,它是一种集中处理事件的模式,允许不同组件之间通信,降低耦合度。 事件总线的三要素:事件源(事件的定义)、发布事件(触发事件)、订阅事件(事 ...

设计模式之责任链模式

博主头像 责任链模式是面向对象的23种设计模式中的一种,属于行为模式范围。责任链模式(Chain of Responsibility),见名知意:就是每一个处理请求的处理器组合成一个链表,链表中的每个节点(执行器)都有机会处理发送的请求。 大致的结构是这个样子: 举一个简单的例子:某公司有一名新员工要入职,则 ...

过滤器模式

过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。 双龙物流 概要 意图 用于将对象的筛选过 ...

发布订阅模式的TS实现

博主头像 简介 发布订阅模式是一种常用的用于解耦的模式。 它和观察者模式的区别在于: 观察者模式:被观察者需要维护一个观察者的集合; 发布订阅模式:通信双方互相不知道对方的存在,通过第三方事件总线进行通信。 发布订阅模式在前端领域很常见,例如: Vue 框架中组件的$on和$emit方法; Node.js 中 ...

单例模式

博主头像 目录什么是单例模式?单例模式的特点单例模式的实现方式懒汉模式实现一(非线程安全)实现二(线程安全)实现三(线程安全、推荐)饿汉模式总结 什么是单例模式? 单例模式属于简单设计模式的一种。在整个系统的生命周期内,单例类有且只有唯一一个对象,典型的应用比如日志的句柄。使用单例模式时需要考虑线程安全的问题 ...

深入理解 JavaScript 单例模式及其应用

博主头像 引言 在JavaScript开发中,设计模式是解决特定问题的有效手段。单例模式(Singleton Pattern)是其中一种常见且有用的模式。尽管网上有许多关于单例模式的解释和实现,本篇将从实际工作中的需求出发,探讨如何更好地理解和应用单例模式,以编写更复用、更高效的代码。 什么是单例模式? 单例 ...

Java设计模式-单例模式

博主头像 Java常用设计模式-单例模式 Java Design Patterns: 创建型模式:工厂方法、抽象方法、建造者、原型、单例 结构型模式有:适配器、桥接、组合、装饰器、外观、享元、代理 行为型模式有:责任链、命令、解释器、迭代器、中介、备忘录、观察者、状态、策略、模板方法、访问者 常用设计模式: ...

设计模式之观察者模式(学习笔记)

博主头像 定义 观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会收到通知并自动更新。这种模式用于实现对象之间的解耦,使得一个对象的变化可以通知并更新多个依赖对象,而无需直接引用它们。 为什么使用观察者模式? 解耦 观察者模式将观察者(Observ ...

设计模式之适配器模式(学习笔记)

博主头像 定义 适配器模式是一种结构型设计模式,它允许将一个类的接口转换为客户端希望的另一个接口。适配器使得原本由于接口不兼容而不能一起工作的类可以协同工作。通过创建适配器类,可以将现有类的接口转换成目标接口,从而使这些类能够在一起工作。 为什么使用适配器模式 兼容性 适配器模式能够解决由于接口不兼容而无法直 ...