💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] ## 概述 设计中不应该出现环形结构 ## 常用的子系统 ### 业务规则 指那些在计算机中编入的法律,规则,政策以及过程 ### 用户界面 ### 数据库访问 ### 对系统的依赖性 把对系统的依赖因素归到一个子系统里,就如同把对硬件的依赖因素封装起来一样 ## 形成一致的抽象 抽象是一种能然给你在关注某一概念的同时可以放心地忽略其中一些细节的能力--在不同的层次处理不同的细节 ## 找出容易改变的区域 好的设计师就是都有对变化预期能力(Glass 1995). 目标应该是把不稳定的区域隔离出来.从而把变化所带来的影响限制在一个子程序,,类或者包的内部. 1. 找出看起来容易变化的项目 2. 把容易变化的项目分离出来 3. 把看起来容易变化的项目隔离开来 ### 业务规则 业务规则很容易成为软件频繁变化的根源 ### 对硬件的依赖性 与屏幕,答应机,键盘,鼠标,硬盘声音设施以及通讯设计等之间的接口都是硬件依赖 ### 输入和输出 在做出纯硬件接口层稍高一些层面上 ### 非标准的语言特性 大多数编程语言的实现都包含了一些便利的,非标准的扩展 ### 困难的设计区域和构建区域 这些代码可能因为代码设计得很差很需要重新做.把他们隔离起来 ### 状态变量 在一个典型的应用场景中,可能一开始用布尔变量来定义出错状态,然后又发现具有 ErrorType_None,ErrorType_Warning 和ErrorType_Fatal 等值