`
haiyupeter
  • 浏览: 427556 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

对于设计模式的理解

    博客分类:
  • Util
阅读更多

        前几天,跟一同事学习,才猛然发现,自己以前写的代码都是垃圾。这个同事写代码的时候比较注重用及模式的应用!所以写出来的代码比较适用于扩展,也适用于理解,当然了,要快速理解别人的代码的话当然是要对设计模式比较熟悉。以前的自己真的没多少东西,看过的设计模式,从来没有在真正的编程中实际应用上过,都是靠感觉是就写代码了,这种情况往往导致需求变动时我们更改程序非常的痛苦。

        经过一个月的早上9点到晚上12点钟的加班历练后,猛然发现好好学习,好好看书,好好总结,好好分享,好好讨论,好好传授经验的重要。非常感谢在这一段时间的历练机会,希望这是一个转折。

        现在重新整理一下设计模式的理解,具体的模式的类图,请查看相关的书籍《Head First》或者是更简单的《大话设计模式》:

  1. 简单工厂模式(Factory):对某一相似操作(或者称算法)进行分类!适用于分类的场景,所有的分类场景都可以使用此模式进行分类。最常用的例子是什么呢?加减乘除的分类,商品打折分 类,购买蔬菜时按价格梯度进行分类等分类场景,除了在生活中,在实际的编程应用则需要举一反三了!心得:可以很好的进行分类,但每新增一类算法时需要改动原有的逻辑或者代码。
  2. 策略模式(Strategy):与简单工厂很相像!但它呢,对于用户而言,只需要了解一个类即可,而简单工厂模式必须要了解两个类。心得:将策略模 式与工厂模式结合后,则非常的美观,并且重用性也强,这也是我发现的唯一优点。在Java中,我们可以通过反射新建一个策略类的方式来作为工厂模式!个人觉得它无非是对工厂进行了简单的封装罢了!
  3. 观察者模式(Observer):主要为事件而设计,如:事件充当通知者的角色,把一批观察者挂在通知者上,通知者触发事件时调用每个观察者的监听事件。心得,每一个通知者和观察者都可以动态添加,而不影响现有的通知者和观察者。如写了ClickEvent和DbClickEvent,每一个Event下面挂了Observer对象,则在ClickEvent和DbClickEvent的调用notify()方法时,将Observer对象的相应方法都进行触发。
  4. 适配器模式(Adapter):通常是在逼不得已才用上,在双方改接口都很难的时候才进行,最好是重构统一他们的接口。
  5. 工厂方法(Factory Method):将工厂再具体抽象出来。相对于简单工厂,添加工厂类的时不需要修改原有的工厂类,符合对修改封闭,对扩展开放原则。          
  6. 抽象工厂方法(Abstract Factory) :将产品类再抽象出一层来,并且在具体的工厂类都依赖于这个类,但如果要新增加某一类产品时,除了新增的修改类,还要修改所有的工厂类。心得:事实上每一个工厂类的逻辑均是一样的,所以可以通过反射的方式,拿到类名每次去创建类即可,而无需要使用IFactory及其实现类。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
分享到:
评论
1 楼 mfkvfn 2012-02-23  
策略模式类似于互相隔离的“多例”模式。
抽象工厂方法可以理解为“系列”,即一个具体工厂创建同一系列的多个实例。要么创建A1,B1,C1的实例,要么创建A2,B2,C2的实例,不能创建A1,B2,C1这样的实例,因为它们不是一个系列的。

相关推荐

    几种设计模式的理解设计模式理解

    以下是对几种设计模式的详细理解和应用。 1. 工厂模式 工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在这个模式中,一个工厂类负责创建对象,而客户端无需知道创建的具体过程。工厂类可以根据...

    最简单的理解设计模式

    最简单的理解设计模式,设计模式对比学习,设计模式特性分析

    人人都懂设计模式 人人都懂设计模式

    在本书中,作者使用了轻松、有趣的语言来讲解设计模式,通过故事和示例来帮助读者更好地理解设计模式的思想和方法论。作者还提供了详细的代码实现和示例,帮助读者更好地掌握设计模式的应用。 本书是一本非常实用的...

    Head First 设计模式 +Java设计模式(第2版)

    这两本书对于Java开发者来说尤其宝贵,因为它们不仅介绍了设计模式的概念,还提供了大量实例,帮助读者深入理解和应用这些模式。 《Head First 设计模式》以其独特的教学方式,将复杂的概念以易于理解的形式呈现。...

    GOF设计模式中英文+设计模式精解中英文

    本资源包含了GOF设计模式的中英文对照版以及一本设计模式精解的中英文版,对于深入理解和应用设计模式来说,是非常宝贵的资料。 设计模式分为三大类:创建型模式、结构型模式和行为型模式。创建型模式关注对象的...

    设计模式解析.pdf

    描述中提到设计模式和面向对象编程,强调了它们对于软件设计师和开发者的重要性。这表明书籍将从基础出发,逐步深入,不仅教授设计模式的基础知识,还将引导读者理解设计模式背后的深层理念,即面向对象思维的本质...

    设计模式课件大全

    设计模式02 设计模式03-创建型模式 设计模式04-创建型模式2 设计模式05-建造者、原型模式 设计模式06-适配器、桥接、组合模式 设计模式07-组合模式、装饰模式 设计模式09-外观模式、享元模式 设计模式10-代理模式、...

    设计模式(包含5个设计模式)含源代码报告.rar

    这个压缩包文件"设计模式(包含5个设计模式)含源代码报告.rar"显然是一份宝贵的资源,它涵盖了五个核心的设计模式,并附带了详细的类图、源代码以及文档报告,这对于学习和理解设计模式至关重要。 首先,我们要探讨...

    设计模式练习题

    有关设计模式的练习题。设计模式的分类。等相关的联系。学西设计模式必选习题。有助于加强对于设计模式的理解。

    .net设计模式详细介绍以及案例代码

    在学习和应用设计模式时,开发者需要理解何时使用哪种模式。过度使用或错误使用模式都可能导致系统架构问题。因此,设计模式的学习需要结合实际的项目经验。经验丰富的开发者能够根据具体情况判断使用模式的时机,并...

    设计模式之蝉

    书中包含了作者的个人读书笔记,这表明除了正文内容之外,作者还提供了自己的理解与见解,这些笔记可能对理解设计模式的精髓与实际应用有很大的帮助。 在内容部分,我们可以看到有关于设计模式的一些具体讨论,例如...

    设计模式之观察者设计模式理解

    轻松理解观察者设计模式

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

    总的来说,掌握设计模式对于任何软件开发者来说都是至关重要的。它不仅能够提高代码质量,还能提升个人技术水平,为职场发展铺平道路。因此,无论是面试还是日常开发,都应该重视设计模式的学习和实践。

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

    《深入浅出设计模式》是一本面向Java开发者的专业书籍,旨在帮助读者理解并熟练应用设计模式。设计模式是软件工程中的重要概念,它总结了在特定情境下解决常见问题的最佳实践,是经验丰富的开发者们智慧的结晶。这...

    软件设计模式(java版)习题答案.pdf

    2. 设计模式使人们可以更加简单方便地复用成功的设计和体系结构,将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。 3. 设计模式使得设计方案更加灵活,且易于修改。 设计模式的基本要素 ...

    基于Java的设计模式大作业绘图系统【六种设计模式+文档】.zip

    本系统基于六种设计模式,运用到的设计模式有备忘录模式,简单工厂模式,迭代器模式,状态模式,模版方法模式,单例模式。...使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。

    设计模式深刻理解

    ### 设计模式深刻理解 #### 一、设计模式概述 设计模式是一种软件设计中的最佳实践方法,它描述了在特定情况下解决常见问题的一种通用解决方案。...总之,掌握设计模式对于成为一名优秀的软件工程师至关重要。

    java设计模式案例

    设计模式是面向对象编程中的重要概念,它提供了一种标准化的解决...通过对设计模式的深入理解,结合具体语言和平台特性,遵循需求驱动的原则,我们可以有效地将设计模式融入到实际项目中,提升软件的质量和可维护性。

    设计模式解析

    在Java开发中,掌握设计模式对于提升代码质量和开发效率至关重要。本资料"设计模式解析(第二版)"正是这样一本专注于此主题的资源。 设计模式通常分为三类:创建型模式、结构型模式和行为型模式。创建型模式关注...

Global site tag (gtag.js) - Google Analytics