`
Fis
  • 浏览: 87175 次
  • 性别: Icon_minigender_1
  • 来自: 龙城
社区版块
存档分类
最新评论

非关语言: 设计模式

阅读更多
文章来源:Gossip@caterpillar

  程式设计是思维具体化的一种方式,是思考如何解决问题的过程,设计模式是在解决问题的过程中,一些良好思路的经验集成,最早讲设计模式,人们总会提到 Gof  的著作,它最早将经典的 23 种模式集合在一起说明,对后期学习程式设计,尤其是对从事物件导向程式设计的人们起了莫大的影响。
  后来设计模式一词被广泛的应用到各种经验集成,甚至还有反模式(AntiPattern),反模式教导您如何避开一些常犯且似是而非的程式设计思维。
  这边的话将整理一些设计模式学习心得,实作的部份是使用Java,因而您会看到一些与 Gof 模式不同的图及实作方式,这是为了善用一些Java本身的特性,至于C++的实作方面,Gof 的书已经给了不少的例子。
  在一些模式的实作上,您会发现我用了介面(interface)来取代抽象类别(Abstract class),这与原先的Gof书中的范例会不尽相同,这是因为在C++中没有介面,一个完全没有实作任何方法的抽象类别,根据当时描述的主题特性,可以的话会将之换为介面,在语义上会较符合Java语言的特性,但是您要知道的是,介面与完全没有实作任何方法的抽象类别在某些时候是可以互换的。
  在这边所看到的 UML 图都是使用 Jude 绘制的,Jude 是一个纯 Java 撰写的 UML 工具程式,可运行与 Windows、Linux 等多个平台,体积小,使用简易。
Gof 模式
    以下的设计模式则是我个人从 Gof 学习中的个人体会与实作,并增加几个导入或衍生的简单模式。

Creational 模式
  物件的产生需要消耗系统资源,所以如何有效率的产生、管理与操作物件,一直都是值得讨论的课题, Creational 模式即与物件的建立相关,在这个分类下的模式给出了一些指导原则及设计的方向。

Simple Factory 模式
Abstract Factory 模式
Builder 模式
Factory Method 模式
Prototype 模式
Singleton 模式
Registry of Singleton 模式

Structural 模式
  如何设计物件之间的静态结构,如何完成物件之间的继承、实现与依赖关系,这关乎着系统设计出来是否健壮(robust):像是易懂、易维护、易修改、耦合度低等等议题。Structural 模式正如其名,其分类下的模式给出了在不同场合下所适用的各种物件关系结构。

Default Adapter 模式
Adapter 模式 - Object Adapter
Adapter 模式 - Class Adapter
Bridge 模式
Composite 模式
Decorator 模式
Facade 模式
Flyweight 模式
Proxy 模式(一)
Proxy 模式(二)

Behavioral 模式
  物件之间的合作行为构成了程式最终的行为,物件之间若有设计良好的行为互动,不仅使得程式执行时更有效率,更可以让物件的职责更为清晰、整个程式的动态结构(像是物件调度)更有弹性。

Chain of Responsibility 模式
Command 模式
Interpreter 模式
Iterator 模式
Mediator 模式
Memento 模式
Observer 模式
State 模式
Strategy 模式
Template Method 模式
Visitor 模式


多执行绪模式
    在很多应用中都会使用多执行绪,尤其是在Web应用中,多执行绪以 Gof 整理的模式为基础,考量多执行绪环境中,如何组合这些基本模式来完成多执行绪安全要求。

Guarded Suspension 模式
Producer Consumer 模式
Worker Thread 模式
Thread-Per-Message 模式
Future 模式
Read-Write-Lock 模式
Two-phase Termination 模式
Thread-Specific Storage 模式

图例下载:发布完成后提供

参考资料
    以下是以Java实作设计模式的介绍网站,从下面的连结开始,当中您可以找到更多设计模式的资源。

Huston Design Pattern
The Design Patterns Java Companion
板桥里人的 Java 设计模式学习心得
UML 软件工程组织
分享到:
评论

相关推荐

    x86汇编语言:从实模式到保护模式

    《x86汇编语言:从实模式到保护模式》是李忠先生的一部经典著作,专注于介绍如何在x86架构的计算机上构建操作系统,尤其是如何从传统的实模式过渡到更为安全和功能丰富的保护模式。这本书涵盖了从基础的汇编语言编程...

    设计模式:Java语言中的应用.zip

    在Java语言中,设计模式的应用广泛且至关重要,因为它们能帮助开发者遵循良好的编程原则,如开闭原则、单一职责原则、依赖倒置原则等。 首先,我们来看一些基本的设计模式类型: 1. 创建型模式:这类模式主要处理...

    《设计模式:可复用面向对象软件的基础》学习并理解 23 种设计模式

    《设计模式:可复用面向对象软件的基础》一书介绍了23种经典的设计模式,这些模式大致可以分为三大类: 1. **创建型模式**:专注于对象的创建机制,确保系统在合适的时机创建正确的对象。 - **单例模式**...

    java经典设计模式

    Java设计模式是软件开发中的重要概念...设计模式的应用不仅限于Java,许多面向对象的语言中都会用到这些模式,因为它们是跨语言的通用解决方案。学习和掌握设计模式有助于提升代码质量,提高软件的可维护性和可扩展性。

    面向对象:设计模式:中文版

    学习和理解这些设计模式对于提升面向对象编程的技艺至关重要,它们有助于编写出更加灵活、可维护和易于扩展的代码。《设计模式》中文版的阅读将帮助开发者更好地理解和应用这些模式,提高软件设计的效率和质量。

    24种设计模式以及混合设计模式

    通过学习和应用这些设计模式,开发者不仅可以提高代码的可读性、可维护性和可扩展性,还能提升团队间的沟通效率,因为设计模式是软件工程中的通用语言。对于任何有志于提升软件开发水平的人来说,理解和掌握设计模式...

    设计模式之美——教你写出高质量代码

    设计模式不仅对面试有所帮助,也是职场发展中的必备技能,无论你使用哪种开发语言。 设计模式分为三大类:创建型模式、结构型模式和行为型模式。它们分别处理对象的创建、组合以及对象间的行为交互。 1. 创建型...

    x86汇编语言从实模式到保护模式- 光盘

    学习《x86汇编语言:从实模式到保护模式》,读者将深入理解计算机底层的工作原理,掌握操作系统设计的基础,这对于操作系统开发者、系统程序员以及安全研究人员来说至关重要。通过实践和理解这些知识,可以提高解决...

    php设计模式代码

    在PHP编程领域,理解并熟练运用设计模式对于提升代码的可维护性、可扩展性和可重用性至关重要。本压缩包“php设计模式代码”包含了作者亲笔编写的一些常见PHP设计模式的实现,下面将对这些设计模式进行详细的阐述。 ...

    java的设计模式 《设计模式-java语言中的应用.pdf》

    以上就是Java设计模式的一些基本概念和应用,理解并熟练掌握这些模式对于编写高质量、易于维护的Java代码至关重要。通过阅读《设计模式——Java语言中的应用》这本书,你可以更深入地学习和掌握这些模式的细节及其在...

    设计模式相关资料

    因此,理解何时以及如何使用设计模式至关重要。 总的来说,设计模式是软件开发中的一种宝贵资源,通过学习和掌握设计模式,我们可以提高代码质量,提升团队间的沟通效率,同时为未来的扩展和维护打下坚实基础。对于...

    深入浅出设计模式(中文版)

    设计模式的应用不仅仅局限于Java,它们是面向对象编程语言通用的原则和技巧。通过学习设计模式,开发者可以提高代码的可读性,减少代码冗余,提升软件的可维护性和可扩展性。设计模式也是面试中常见的考察点,熟练...

    23种面向对象设计模式

    面向对象设计模式是软件开发中的一种...无论是在Java还是C++这样的面向对象语言中,理解和掌握这些设计模式都对提升软件质量至关重要。通过深入学习并应用这些模式,开发者可以更好地应对软件项目中的复杂性和变化。

    JAVA设计模式(java设计)

    Java设计模式是面向对象编程领域中的重要概念,它是一套被广泛接受并实践的解决软件设计问题的经验总结。设计模式并非具体的代码或库,而是一种在...因此,深入研究Java设计模式对于任何Java程序员来说都是至关重要的。

    C#面向对象设计模式纵横谈 12种设计模式

    C#作为面向对象的语言,设计模式的应用对于开发高效、可维护的软件至关重要。本篇将深入探讨12种核心的设计模式,它们是:单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式、适配器模式、装饰器模式、代理...

    设计模式 23种设计模式PPT

    设计模式的核心理念是面向接口编程,而非面向实现,从而降低模块间的耦合,提升系统的灵活性。 设计模式分为三大类:创建型模式、结构型模式和行为型模式。这些模式在不同的场景下有着不同的应用,可以帮助开发者更...

    软件架构建模设计模式

    在Java这样的面向对象编程语言中,设计模式尤其重要,因为它们可以帮助开发者创建健壮、可维护和可扩展的系统。本教程将深入探讨Java高级编程中的设计模式,特别是与软件架构相关的部分。 **设计模式的分类** 设计...

Global site tag (gtag.js) - Google Analytics