设计模式是一门艺术,因为它们来源于生活,不要为了套用设计模式而去使用设计模式。我们在编写程序的时候用好设计模式可以防范于未然,它们可以很好地提供一种解决问题的方案。从古至今,我们在遇到问题的时候,都会去寻求帮助,咨询懂的人,或者去图书馆查阅资料,或者在电脑前面搜索,等等方法。在学习23种设计模式之前我们必然需要学习软件架构的设计原则,下面用一句话来概括这七大设计原则。
一、一句话总结设计原则

二、设计模式简介
建筑师克里斯托佛·亚历山大在1977/79年编制了一本汇集设计模式的书,但是这种设计模式的思想在建筑设计领域里的影响远没有后来在软件开发领域里传播的广泛。
肯特·贝克和沃德·坎宁安在1987年,利用克里斯托佛·亚历山大在建筑设计领域里的思想开发了设计模式并把此思想应用在Smalltalk中的图形用户接口(GUI)的生成中。一年后埃里希·伽玛在他的苏黎世大学博士毕业论文中开始尝试把这种思想改写为适用于软件开发。与此同时James Coplien 在1989年至1991年也在利用相同的思想致力于C++的开发,而后于1991年发表了他的著作Advanced C++ Programming Styles and Idioms。同年Erich Gamma 得到了博士学位,然后去了美国,在那与Richard Helm, Ralph Johnson ,John Vlissides 合作出版了《设计模式:可复用面向对象软件的基础》(Design Patterns - Elements of Reusable Object-Oriented Software) 一书,在此书中共收录了 23 种设计模式。
这四位作者在软件开发领域里以“四人帮”(英语,Gang of Four,简称GoF)而闻名,并且他们在此书中的协作导致了软件设计模式的突破。有时,GoF也会用于代指《设计模式》这本书。
设计模式是前人经验的总结,提供给后人去借鉴使用的,前人种树后人乘凉。它不但可以解决复杂的业务问题,也可以帮助我们提高代码的可读性、扩展性,降低维护成本。
这里给大家推荐一份完整覆盖GoF讲述的23个设计模式并加以细细研磨的文档。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,培养正确的“设计观”;中高级内容则深入探讨如何理解这些模式,包括模式中蕴涵什么样的设计思想,模式的本质是什么,模式如何结合实际应用,模式的优缺点以及与其他模式的关系等,以期让读者尽量去理解和掌握每个设计模式的精髓所在。
在内容上深入、技术上实用,和实际开发结合程度很高,大部分的示例程序都是从实际项目中简化而来,因此很多例子都可以直接拿到实际项目中使用。如果你想要深入透彻地理解和掌握设计模式,并期望能真E把设计模式应用到项目中去,那么这份一定不能错过
涉及应用

涉及实际问题

文档前提
1.本书的知识边界
由于关于设计的知识过于博大精深,因此本书“集中火力”,重点讲述GoF著作中涉及的23个设计模式本身,以及和这些设计模式相关的应用内容。没有过多涉及:面向对象设计原则、重构、系统架构设计、JavaEE (原J2EE,也有简写成JEE)设计模式或是其他分类的设计模式(如EJB设计模式)等内容,原因可以参见附录A.也没有过多讲述UML,有需要的朋友请参看附录B.对于每章涉及的实际应用,描述也非常简略,只抽取讲述模式需要的一点东西。 因为这些实际应用的东西,对于有相应开发经验的朋友多说无益,一提就明白: 对于没有相应经验的朋友,多讲-点也未见得能多明白多少,反而冲淡了设计模式这个主题。.
2.本书的示例和代码
本书的示例虽然大都来自实际应用,但是经过相当的删除简化和重新组合:另外一点,为了突出设计模式这个主题,因此代码并不是按照实际应用那样来严格要求,很多例外处理、数据检测等都没有做,逻辑也未见得那么严密:还有一点, 在实际的开发中,很可能是多个模式组合来实现某个功能,但是本书为了示例某个模式,让重点突出而避免读者迷惑,会选择重点示例某个模式的用法,而简化或去掉其他模式。
如果要把这些示例代码在实际应用中使用,还需要对这些代码进行加工,使其更加.严谨,才能达到工业级的要求。
章节内容展示
首先声明阅读本文档之前一定要具备一定的JAVA基础,和开发经验
第1章设计模式基础

第2章简单工厂

第3章外观模式

第4章适配器模式(Adapter )

第5章单例模式(Singleton)

第6章工厂方法模式

第7章抽象工厂模式

第8章生成器模式(Builder)

第9章原型模式(Prototype )

第10章中介者模式(Mediator )

第11章代理模式(Proxy)

第12章观察者模式(Observer )

第13章命令模式(Command)

第14章迭代器模式 (Iterator )

第15章组合模式(Composite)

第16章模板方法模式

第17章策略模式(Strategy)

第18章状态模式(State)

第19章备忘录模式 (Memento)

第20章享元模式(FIywe ight)

第21章解释器模式

第22章装饰模式 (Decorator )

第23章职责链模式 (Chain ofResponsibility)

第24章桥接模式(Br idge)

第25章 访问者模式(Visitor )

这份文档内容太多了足足800多页,就不给大家做过多展示了!



这份文档难度为初级到中级,适合于所有开发人员、设计人员或者即将成为开发人员的朋友。也可以作为高校学生深入学习设计模式的参考读物。
设计模式精要
本文档深入浅出地讲解了23种设计模式,包括每种模式的定义、功能、结构和应用实例等,旨在帮助开发者掌握设计模式的核心理念,提高代码质量和可维护性。
96

被折叠的 条评论
为什么被折叠?



