如果你要开发一个小型的系统,整个系统只有两三人,系统活不过五年,商业逻辑单纯,程序代码不超过万行,那么你随便做,影响不大。反之,若要架构大型系统,你需要慎思,套用模型与架构,将前人的经验当作基石,这样系统设计才不至于陷入发散。
然而,你不会一开始就做大系统,那样风险太高。因此,要练习,最好从小系统开始使用模型与架构,这样才能检讨与学习,日后方能在大系统中自如运用。
企业信息系统现今面临着大量的整合需求,需要提供深入的分析应用和灵活的应变流程。但系统整合的复杂度是彼此系统复杂度的乘积,系统间的安全、弹性、效率、扩充性、可用性……彼此互相掣肘,此时,企业需要接触广、想得深、能定方向的架构师。而熟悉设计模式是架构师的养成基础,要求对于问题的分类与解法有一定的认知。
有经验的设计者们,抽象出系统开发的原则与标准问题的设计解法,而GOF于十几年前提出的23种模式是其中的佼佼者。但毕竟空有概念,仍难落实到你日常使用的程序语言中来。坊间许多图书作者利用不同的程序语言,例如C++、Visual Basic、.NET、Java等,实现GOF的23种模式,配合UML的模型说明,让你可以方便地应用在自己的开发环境中。
本书的作者王翔有多年的开发经验,参与过多个软件部分投资千万乃至十亿元的大工程,他将经验融于设计模式中,以C#重新实现了GOF的模式,同时加入了新近的设计想法,如SOA与Web Services等,以及相对于其他设计模式而言较新的.NET Framework实现技术,如泛型、3.0的WCF等。在本书中他除了正向地以C#展现多个不同用途的模式外,还提供了日后可重复验证与测试的单元测试码。
系统分析与设计是门艺术,问题的解法与何为问题是交织的,而各模式的搭配使用技巧不同,要领存乎一心,须要巧思与反复琢磨,方可有好的解法。本书立意明确,除了告诉你问题的类型与解法,还提供了可以立即演绎的程序代码。相信这本案头的工具书可以提供你一个不错的思维模式,帮你造就有弹性、能扩充、易维护的软件实体。
须要提醒你的是,抽象化的思考、封装与重用的设计神髓在心中,而不是落在纸上的程序代码,阅读此书时,不要停止在仅Copy and Paste程序代码。
微软MVP,台湾恒逸资讯资深讲师,“数据库铁人” 胡百敬