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#中广泛使用的设计模式,强调了它们在实际项目中的应用价值。理解并熟练运用这些模式,对于提升C#开发者的专业素养和项目质量具有重大意义。无论是初学者还是经验丰富...
本篇文章将对一系列重要的C#面向对象设计模式进行总结,帮助开发者更好地理解和应用这些模式。 1. 工厂模式:工厂模式是一种创建型设计模式,提供了一种创建对象的最佳方式,通过抽象工厂接口,避免了代码与具体类...
设计模式总结,对23种经典模式的分类,各自的使用方法,优缺点进行详细的描述。
大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf
本总结文档涵盖了所有的设计模式,并对常用的模式进行了详细解释,非常适合程序员在面试前快速复习以及日常学习使用。 文档中提到的六大设计原则,包括单一职责原则、里氏替换原则、接口隔离原则、迪米特法则、开闭...
这里主要针对标题“Java设计模式总结”以及描述中提及的资源进行深入阐述。 1. **设计模式的概念**: 设计模式并非具体的代码或库,而是一种在特定上下文中解决常见问题的模板。它们描述了如何在面向对象设计中以...
在《23种设计模式总结及案例》中,通常会涵盖以下主要的设计模式类型: 1. 创建型模式:这类模式主要关注对象的创建过程,使得系统在不指定具体类的情况下创建对象,提高代码的灵活性。包括单例模式(Singleton)、...
设计模式总结主要包括创建型、结构型和行为型这三大类,每类模式都有其特定的应用场景和目标。 1. 创建型模式(创建对象的模式) - 工厂方法模式:允许将对象的创建过程推迟到子类中,使得代码更具可扩展性和灵活...
设计模式是软件开发中的一种最佳实践,它是在特定上下文中解决常见问题的模板或蓝图,可以被反复使用,以提高代码的可读性、可维护性和灵活性。在Java编程中,23种经典的设计模式被广泛认可并应用,这些模式分为三大...
设计模式总结 设计模式是软件设计中的一种重要概念,它们是经过实践和经验总结出的优秀设计解决方案。设计模式的应用可以使软件设计更加灵活、可维护、可扩展和可重用。本文档对设计模式进行了总结和归纳,主要包括...
### 设计模式总结篇 #### 引言 在软件开发领域,设计模式作为一种重要的方法论,对于提升软件质量、增强代码可维护性和可扩展性具有不可替代的作用。本文旨在总结和探讨设计模式的相关知识,包括架构设计原则、...
Spring设计模式总结 在软件开发中,设计模式是解决常见问题的经验总结,它们为程序员提供了在特定场景下设计高效、可维护代码的蓝图。在Spring框架中,许多设计模式被广泛应用,以提升系统的灵活性和可扩展性。以下...
《.Net 面向对象及设计模式总结》是一份深度涵盖.Net开发中面向对象编程原理和设计模式的宝贵资料,特别适合初学者巩固基础知识,以及有经验的开发者进行复习和提升。通过阅读这些笔记,我们可以深入理解面向对象的...
自己根据老师的课件的和讲解,总结的关于程序设计模式的知识,拿出来和大家分享一下,希望能帮到和我一样,在学设计模式时遇到困难的同学。
### 设计模式总结:模板设计模式与单例模式 #### 模板设计模式 模板设计模式是一种行为型设计模式,它定义了一个算法的骨架,并允许子类为算法的某些步骤提供具体的实现。通过这种方式,算法的基本流程保持不变,...
"设计模式总结-java与模式清晰版"这个标题表明我们即将探讨的是关于Java编程语言中的设计模式,旨在帮助开发者更好地理解和应用这些模式。这篇博文链接(https://410063005.iteye.com/blog/1680031)可能提供了详细...
设计模式总结 设计模式是软件设计中的一种解决方案,旨在解决软件设计中的一些常见问题。以下是设计模式的总结,涵盖了多种设计模式的概念、特点和应用场景。 一、类图备注 * +public:公共成员变量或方法 * -...
设计模式总结 设计模式是软件开发中的一种解决方案,它提供了一种通用的解决方案来解决常见的软件设计问题。设计模式可以分为三大类:创建型模式、结构型模式和行为型模式。 创建型模式(Creational Patterns) *...
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 桥接模式 ........