`
pwang19871018
  • 浏览: 4169 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

设计模式总结

阅读更多

Java设计模式总结

一、写在前面
        刚开学,趁着有时间把设计模式重新整理一次。学好设计模式是走向架构的第一步,系统架构应该朝着可维护,可扩展,强壮性好的方向去发展。大学的最后一个学期了,时间不多了,3月初就要去腾讯实习了,还有毕设。加油 :)

二、常见的模式分类
 

创建模式

结构模式

行为模式

简单工厂模式

适配器模式

不变模式

工厂方法模式

缺省适配模式

策略模式

抽象工厂模式

合成模式

模版方法模式

单例模式

装饰模式

观察者模式

多例模式

代理模式

迭代子模式

建造模式

享元模式

责任链模式

原始模型模式

门面模式

命令模式

 

桥梁模式

备忘录模式

   

状态模式

   

访问者模式

   

解释器模式

   

调停者模式



三、主要模式的定义和描述
以下内容来自《head first 设计模式》一书
 

模式

定义

描述

装饰者

动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案

包装一个对象,以提供新的行为

状态

允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类

封装了基本状态的行为,并使用委托在行为之间切换

迭代器

提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示

在对象的集合之中游走,而不暴露集合的实现

外观(门面)

提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更多容易使用

简化一群类的接口

策略

定义算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户

封装可以互换的行为,并使用委托来决定使用那一种

代理

为另一个对象提供一个替身或点位符以访问这个对象

包装对象,以控制对此对象的访问

工厂方法

定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类

由子类决定要创建是具体类是哪一个

抽象工厂

提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类

允许客户创建对象的家族,而无需指定他们的具体类

适配器

将一个类的接口,转换成客户期望另一个接口。适配器让原来不兼容的类可以合作无间

封装对象,并提供不同的接口

观察者

在对象之间定义一对多的依赖,这样一来,当一个对象改变时,依赖它的对象都会收到通知并自动更新

让对象能够在状态改变时被通知

模板方法

在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤

由子类决定如何实现一个算法中的步骤

组合

允许你将对象组成树结构来表现“整体/部分”的层次结构。组合能让客户以一致的方式处理个别对象和对象组合

客户用一致的方式处理对象集合和单个对象

单件(单体)

确保一个类只有一个实例,并提供全局访问点

确保只有一个对象被创建

命令

将请求封装成对象,这可以让你使用不同的请求、队列,或者日志请求来参数化其它对象。命令模式也可以支持撤销操作

封装请求为对象


  四、参考资料
         IBM社区设计模式方面资料: http://www.ibm.com/developerworks/cn/java/design/
         常见OO原则:http://www.blogjava.net/jicheng687/archive/2011/02/13/344174.html

 

分享到:
评论

相关推荐

    李建忠 C#面向对象设计模式纵横谈(25):设计模式总结

    总结来说,李建忠先生的“设计模式总结”涵盖了C#中广泛使用的设计模式,强调了它们在实际项目中的应用价值。理解并熟练运用这些模式,对于提升C#开发者的专业素养和项目质量具有重大意义。无论是初学者还是经验丰富...

    C#面向对象设计模式纵横谈(25):设计模式总结

    本篇文章将对一系列重要的C#面向对象设计模式进行总结,帮助开发者更好地理解和应用这些模式。 1. 工厂模式:工厂模式是一种创建型设计模式,提供了一种创建对象的最佳方式,通过抽象工厂接口,避免了代码与具体类...

    23种设计模式总结

    设计模式总结,对23种经典模式的分类,各自的使用方法,优缺点进行详细的描述。

    大话设计模式总结.pdf

    大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf

    设计模式总结.pdf

    本总结文档涵盖了所有的设计模式,并对常用的模式进行了详细解释,非常适合程序员在面试前快速复习以及日常学习使用。 文档中提到的六大设计原则,包括单一职责原则、里氏替换原则、接口隔离原则、迪米特法则、开闭...

    Java设计模式总结

    这里主要针对标题“Java设计模式总结”以及描述中提及的资源进行深入阐述。 1. **设计模式的概念**: 设计模式并非具体的代码或库,而是一种在特定上下文中解决常见问题的模板。它们描述了如何在面向对象设计中以...

    23种设计模式总结及案例.pdf

    在《23种设计模式总结及案例》中,通常会涵盖以下主要的设计模式类型: 1. 创建型模式:这类模式主要关注对象的创建过程,使得系统在不指定具体类的情况下创建对象,提高代码的灵活性。包括单例模式(Singleton)、...

    Java 设计模式总结 Java 设计模式总结

    设计模式总结主要包括创建型、结构型和行为型这三大类,每类模式都有其特定的应用场景和目标。 1. 创建型模式(创建对象的模式) - 工厂方法模式:允许将对象的创建过程推迟到子类中,使得代码更具可扩展性和灵活...

    23种软件设计模式总结

    设计模式是软件开发中的一种最佳实践,它是在特定上下文中解决常见问题的模板或蓝图,可以被反复使用,以提高代码的可读性、可维护性和灵活性。在Java编程中,23种经典的设计模式被广泛认可并应用,这些模式分为三大...

    大话设计模式总结.docx

    设计模式总结 设计模式是软件设计中的一种重要概念,它们是经过实践和经验总结出的优秀设计解决方案。设计模式的应用可以使软件设计更加灵活、可维护、可扩展和可重用。本文档对设计模式进行了总结和归纳,主要包括...

    设计模式总结篇

    ### 设计模式总结篇 #### 引言 在软件开发领域,设计模式作为一种重要的方法论,对于提升软件质量、增强代码可维护性和可扩展性具有不可替代的作用。本文旨在总结和探讨设计模式的相关知识,包括架构设计原则、...

    Spring 设计模式总结1

    Spring设计模式总结 在软件开发中,设计模式是解决常见问题的经验总结,它们为程序员提供了在特定场景下设计高效、可维护代码的蓝图。在Spring框架中,许多设计模式被广泛应用,以提升系统的灵活性和可扩展性。以下...

    .Net 面向对象及设计模式总结

    《.Net 面向对象及设计模式总结》是一份深度涵盖.Net开发中面向对象编程原理和设计模式的宝贵资料,特别适合初学者巩固基础知识,以及有经验的开发者进行复习和提升。通过阅读这些笔记,我们可以深入理解面向对象的...

    常见的设计模式总结

    自己根据老师的课件的和讲解,总结的关于程序设计模式的知识,拿出来和大家分享一下,希望能帮到和我一样,在学设计模式时遇到困难的同学。

    设计模式总结-模板设计模式,单例模式(singleTon)

    ### 设计模式总结:模板设计模式与单例模式 #### 模板设计模式 模板设计模式是一种行为型设计模式,它定义了一个算法的骨架,并允许子类为算法的某些步骤提供具体的实现。通过这种方式,算法的基本流程保持不变,...

    设计模式总结-java与模式清晰版

    "设计模式总结-java与模式清晰版"这个标题表明我们即将探讨的是关于Java编程语言中的设计模式,旨在帮助开发者更好地理解和应用这些模式。这篇博文链接(https://410063005.iteye.com/blog/1680031)可能提供了详细...

    大话设计模式总结.doc

    设计模式总结 设计模式是软件设计中的一种解决方案,旨在解决软件设计中的一些常见问题。以下是设计模式的总结,涵盖了多种设计模式的概念、特点和应用场景。 一、类图备注 * +public:公共成员变量或方法 * -...

    趣聊设计模式总结1

    设计模式总结 设计模式是软件开发中的一种解决方案,它提供了一种通用的解决方案来解决常见的软件设计问题。设计模式可以分为三大类:创建型模式、结构型模式和行为型模式。 创建型模式(Creational Patterns) *...

    java23种设计模式总结

    java23种设计模式总结 . 设计模式 1.1 创建型模式 1.1.1 工厂方法 1.1.2 抽象工厂 1.1.3 建造者模式 .. 1.1.4 单态模式 .. 1.1.5 原型模式 . 1.2 结构型模式 ... 1.2.1 适配器模式 1.2.2 桥接模式 ........

Global site tag (gtag.js) - Google Analytics