Java设计模式(一)

什么是设计模式?

如果一个问题一再地出现,就必须找到一个能够有效解决问题的方法。那个方法就被描述成模式。设计模式是独立于编程语言的,用来解决常见的,面向对象的设计问题的策略。当你实施设计的时候,你应该知晓一些常见的解决之道的名称。通晓设计模式可以使人们相互间做有效的交流。实际上,你可能已经对一些设计模式很熟悉了,你只是没有用大家耳熟能详的称谓来描述它们而已。太阳公司建议使用GOF(“四人帮”,指写了“设计模式-可重复使用的面向对象软件的元素”一书的四位先驱),所以我们应用那本书作为指导来描述解决之道。你也需要让自己对这些术语熟悉起来,看看别人是如何用它们来解决编程问题的。

一定要使用设计模式吗?

如果你希望成为一位Java的职业程序员,你至少应当晓得一些很流行的解决编码问题的方法。这些方法已被有经验的程序员在实践中证明非常有效。它们就是所谓的设计模式。学习设计模式可以加速你在OOA/OOD领域的经验积累。一旦你掌握了它们,你将会终生收益,并让自己成为设计和开发领域的大师。而且,你也可以使用这些术语和你的同行们更高效地交流。

许多有多年经验的程序员并不知道设计模式,但是作为一个OO的程序员,你必须熟知它们,特别是对那些新学Java的人。实际上,当你解决一个编程问题时,你就已经在使用设计模式了。你只是没有用一些流行的术语来称呼它们而已,或者没有选择一个有效地方法从知识产权的角度来更好地控制你的成果。学习有经验的开发人员是如何来解决编程问题的,并应用到你自己的项目上去是赢得经验和证明的最好方法。

记住,学习设计模式一定会改变你编程的方法;你不只是会变得睿智,你会变得非常的睿智。

有多少设计模式?

许多。一个网站上说在OO的领域中,至少有250种模式,包括“意大利面条”式(指低效糟糕的代码)。被GOF应用的23种设计模式广为人知,许多模式还在探索和发现中。

对了,提醒一句,设计模式不是术语,算法,或组件。

设计模式间的相互关系

一般来讲,建造一个系统,需要将许多设计模式编排在一起。不同的设计师可能使用不同的模式来解决同一个问题。通常来说:

一些模式间相处和谐

一个模式可以引发出另一个模式

一些模式很类似,可以相互替代

模式是可以被发现并文档化的

模式不是方法或架构

模式可以给出一些有效解决问题的提示

创建性模式

抽象工厂(Abstract Factory)定义

提供比工厂模式(Factory Pattern)高一级的接口。一般被用来返回多个工厂中的某一个工厂。

何时使用以及好处

创建了互相关联和依靠的家族型对象,比如Kit

提供了产品的类库,对外展示接口,而不是实施细节

将具体的类和它们的父类隔离开来

一个系统需要独立于它的产品的创建,组成,和表达

需要强制实施一个限制

在表面之外的另一个选择,可用来隐藏与平台有关的类

可以很容易的对一个系统和家族实施继承

与此相关的设计模式包括,

工厂方法(Factory Method),通常用抽象工厂的方法来实施

单例(Singleton),通常用抽象工厂的方法来实施

原型(Prototype),通常用抽象工厂的方法来实施

外观(Facade),通常与抽象工厂一同使用,来提供一个可以创建实施类的接口

时间: 2024-09-10 20:39:11

Java设计模式(一)的相关文章

您的设计模式,我们的设计模式 java设计模式

http://download.csdn.net/download/yangxin00000000/3212729   您的设计模式,我们的设计模式 java设计模式

java设计模式---prototype(原型)模式

设计 java设计模式---prototype(原型)模式 定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.      Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,      工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求      原型对象拷贝它们自己来实施创建.      适用性:当要实例化的类是在运行时刻指定时,例如,通过动态装载:或者  为了避免创建一个与产品类层次平行的工厂类层

Android开发之Java设计模式基础篇

今天我们就Android开发中的一些设计模式做一些基础性的掌握,本次就Android项目的架构设计相关内容做分析: 1. 静态工厂方法 静态工厂方法可以算是工厂方法加单例模式的整合在Android平台上,由于Android的Context可以很好的传递实例,静态工厂方法可以提到传统的类构造器,对于一些逻辑的服务提供类可以考虑这样的设计,比如文件下载.图片裁剪等操作. 2. Java的类访问权限 对于程序的可靠性而言,成员变量尽量私有,通过暴漏公开的方法来访问这些私有成员,提供类似getXXX和s

浅谈Java设计模式关于原型模式(Prototype)思索建议

java教程:关于Java设计模式关于原型模式(Prototype) IT信息技术http://www.52ij.com/jishu/ 首先需要弄清楚什么叫原型模式,或者说为什么要有原型模式,运用它会给我们带来什么或能解决什么问题?原型模式(Prototype)同抽象工厂模式同属于创建型模式,它主要关注于大量相同或相似对象的创建问题,应用原型模式就是先需要一个原对象,然后通过对原对象进行复制(克隆),来产生一个与原对象相同或相似的新对象.注意这里所说的对象相同不是指复制出来的副本对象与原对象是同

Java设计模式(三—四)----工厂模式

Java设计模式 工厂模式 一.引言 二.分类 三.简单工厂模式 四.工厂方法模式 五.抽象工厂模式 六.和工厂方法模式区别 七.总结 工厂模式 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下, new操作符直接生成对象会带来一些问题.举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象.在这些情况,新对象的建

Java设计模式详解之门面模式(外观模式)_java

门面模式(Facade Pattern)也叫外观模式,它隐藏系统的复杂性,并向客户端提供一个可以访问系统的接口.这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性,为子系统中的一组接口提供了一个统一的高层访问接口,这个接口使得子系统更容易被访问或使用.这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用. 简而言之,就是把一堆复杂的流程封装成一个接口供给用户更简单的使用,这个设计模式里有三个角色: 1)门面角色( facade ):

详解Java设计模式之备忘录模式的使用_java

定义与结构     备忘录(Memento)模式又称标记(Token)模式.GOF给备忘录模式的定义为:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态. 在讲命令模式的时候,我们曾经提到利用中间的命令角色可以实现undo.redo的功能.从定义可以看出备忘录模式是专门来存放对象历史状态的,这对于很好的实现undo.redo功能有很大的帮助.所以在命令模式中undo.redo功能可以配合备忘录模式来实现. 其实单就实现保存一个对

由Java设计模式想到测试技术

导读:作者怪怪写了一篇<由Java设计模式想到测试技术>文章,他认为一个合格的测试架构师要完全的理解测试技术.要能实时的掌握新的测试技术并应用于团队.要能抽象并创新出新的能应用于本身团队的测试技术.以下是文章内容: 最近一直在看Junit源码,也看了很多Junit的源代码分析,看到里面都提到了Java设计模式,什么Command模式,Observer模式,Composite模式等等.以前就知道有Java设计模式,这次通过看Junit源码发现这个设计模式真的是非常的有用,而且对于代码设计和架构设

请大神推荐java设计模式视频教程

问题描述 目前急需学习java设计模式,有没有讲得好容易理解的java设计模式视频?请各位推荐推荐 解决方案 解决方案二:专门讲设计模式的视频还真不太多,推荐看书吧,headfirst设计模式,比较生动,容易理解解决方案三:尚学堂马士兵讲的解决方案四:恩,同意一楼的,HeadFirst设计模式,我也正在看,挺好的.如果实在想看视频的话,好像慕课网上面也有一些设计模式的视频,不过好像只有几种解决方案五:搜索尚学堂,他们有免费的设计模式的视频,同时给你推荐一本书,<大话设计模式>,讲得很幽默,很清

优化-java设计模式学习问题?

问题描述 java设计模式学习问题? 我网站的基本功能都已实现,现在要对网站版本升级优化,想快速了解设计模式相关内容,求各位好人推荐视频教程,各种培训机构的都行~ 解决方案 java设计模式学习java-单例设计模式学习7.18_java学习_单例设计模式 解决方案二: 爱酷学习网去看看.里面是软件编程教训视频 解决方案三: 有一个故事版本的java设计模式的,百度一下就出来了 解决方案四: 百度一下,设计模式,会有很多视频和介绍的