软件模型的一些思考
软件模型是什么?
软件模型从不同维度看有多种表现,例如领域模型,UML图中的类图、对象图等; 我想稍微再抽象一下:模型 = 概念 + 结构 + 交互 ;重点是概念,软件设计会涉及到许多概念,有些概念是从现实世界中引用过来的,例如工厂、适配器等,有些是软件领域特有的概念,例如进程、线程、编译器等,有些是现实世界存在的概念被引用软件设计中,它的外延或内涵已被改变,例如文件(file)。
软件设计是在创造和使用一些概念,并把它们组织起来,一个好的、清晰的、完整的概念会让系统容易理解,一个复杂、模糊不清的概念使系统难以维护、使用。
我们在阅读代码时,理解一个类,它的职责是什么,其实也是在理解一个类所代表的一个概念。