模式化的过程是把问题抽象化,在忽略掉不重要的细节后,发现问题的一般性本质,并找到普通适用的解决方案的过程。
模式所描述的问题及问题的答案都应当是具有代表性的问题和问题的答案。所谓代表性,就是说它们以不同的形式重复出现。
模式的研究起源于建筑工程大师Alerander,在他的著作《建筑的永恒之道》里,他描述了一些他认为是永恒的、适合任何工程学科的设计原则,他的原则建立在三个基本概念的基础上:质、门、道。
质:质或称无名的质处在核心的地位上。所有的生物、有用之物均包含自由性,完整性,完备性,舒适性,和谐性,可居住性,持久性,开发性,弹性,可变性,以及可塑性。当人们想认识质的时候,就会将其局限到不同的区域中,这时“无名的质”就变成了一些可定义的质,也就是上面说的包括完整性,完备性等等。质意味着软件的内在属性不仅仅存在于这个软件当中,而且存在于和其他软件以及以及计算机外部世界(特别是用户)的交互之中。质在映射到人脑之前是“无名”的,而映射到人脑之后便产生了软件需求的可变性,软件的可用性,以及系统的可扩展性、灵活性和可插入性等等。
门:门是通向质的管道。“门”是通过一个普遍的模式语言来体现的,这个模式语言使设计师可以创建多种形式的设计,以满足多方面的需求。门对于软件开发来说就相当于源代码,代码的组合形式的反复出现,就是模式。
道:道又称永恒的道,利用“道”,从“门”演化到“质”的过程,就是把一定的特定的模式按照一定的顺序应用到系统设计上的循序渐进的过程。从“门”转换到“质”的过程,是一个先整体后部分,整体通过分裂来产生部分。任何工程的发展过程都是通过追寻“道”,通过“门”到达“质”的过程。
软件设计必须从软件的整体属性出发也就是从无名的质出发,通过分析得到可定义的质,也就是软件的模块划分,用户界面,类及其方法等等。软件设计必须通过对“道”的追逐,通过“门”才能带到“质”。也就是说软件设计时必须通过对学习,掌握设计模式,才能做出符合要求的产品。而这一过程我们可以称之为“形而上学”。
ps:作者对于哲学以及道教乃至物理学的理解都已经到了相当的高度,纵使我不停的揣摩研究还是有很多不能理解之处。但这不影响我继续把这本书读下去,因为从这开始,书本的内容开始进入软件范畴,这一章可以留待以后慢慢揣摩。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构