
漫谈设计模式
文章平均质量分 73
疯狂的逻辑
这个作者很懒,什么都没留下…
展开
-
浅谈设计模式——外观模式
我们在日常中写的一些程序接口,通常散落在不同的程序代码里。在使用的时候寻找起来比较麻烦,而且改动起来也不是很方便,这是我们就需要一个统一的类来封装这些接口,以便提供给外部操作。这就是我们今天要讲的“外观模式”。定义:外观模式就是为了子系统对外提供的一组接口提供一个统一的界面,使得其他系统对该系统的访问都通过这个统一的界面来完成。组成:外观模式由3部分组成:抽象外观类、实现抽象外观类的具体外原创 2012-03-06 11:58:15 · 406 阅读 · 0 评论 -
浅谈设计模式——原型模式
我们已经学习过了工厂模式和创建者模式,可是有一个问题。比如有一个对象,在某一个时刻该对象中已经包含了一些有效值,此时可能会需要一个和该对象完全相同的新对象,并且此后对新对象的任何改动都不会影响到原来对象中的值,也就是说,新对象与原来的对象是两个独立的对象,但新对象的初始值是由原来的对象确定的。关于上面问题的解决方案,就是我们今天所要将的“原型模式”。定义:原型模式就是通过一个原型对象来表明要创原创 2012-03-05 10:49:06 · 514 阅读 · 0 评论 -
浅谈设计模式——单例模式
在实际的生活中,我们往往需要一个类只产生一种对象的情况。比如我的Windows系统的打印服务,同一时间智能为一台打印机提供服务;网站的访问统计器也是,一个网站只有一个访问统计器。也就是说,某些类在运行时智能创建一个对象,这就是我们所要讲的“单例模式”。定义:单例模式就是确保一个类只有一个实例,并且该实例必须自动创建,并向整个系统提供该实例。原理:单例模式可以分为饿汉式单例模式和懒汉式单例模原创 2012-03-05 14:16:02 · 698 阅读 · 0 评论 -
浅谈设计模式——创建者模式
通过前面的学习我想大家已经了解了三种基本的设计模式,本次我们将讲解一下“创建者模式”。下面我们将通过摩托车的组装过程来讲解一下创建者模式的具体实现。我们要组装一个摩托车,那么我们需要很多的零件,各种品牌各种型号。如果我们仍用前面讲过的设计模式来设计,则客户端将便的异常庞大,曾加了代码的调试量。那么,我们可以专门创建一个类,用来实现摩托车的组装。这种方法就叫做“创建者模式”。定义:创建者模式就是原创 2012-02-29 22:16:19 · 1972 阅读 · 0 评论 -
浅谈设计模式——抽象工厂模式
每一种设计模式都是为了解决一类问题而产生的,如果说工厂方法模式是针对一个产品结构而言的话,那么抽象工厂模式就是针对于多个产品结构而言的,它主要用于帮助客户一次创建多个不同的产品。 以动物园的动物为例子,老虎、海豚、鹦鹉分亚洲和非洲的。如果运用我们前一篇的工厂方法模式,那么我们就要创建大量的工厂,从而大大增加了我们的代码量,也违背了我们使用设计模式的原则。针对这个问题我们本次将讲解“抽象工厂原创 2012-02-27 21:07:12 · 969 阅读 · 1 评论 -
浅谈设计模式——工厂方法模式
上次的学习,我们已经实现了简单工程模式,并创建了三个动物实例。但是,有一个问题。比如我们还需要创建一个Monkey类,那么我们就要去相应的更改简单工厂的创建代码,而这恰恰违背我们的软件设计原则。秉着尽量添加代码,而不修改原代码的原则,针对上述问题我们对简单工程模式进行修改,于是这就是我们今天要讲到的工厂方法模式。定义:工厂方法模式中抽象工厂类负责定义创建对象的借口,具体对象的创建工作由实现抽象原创 2012-02-23 20:44:15 · 584 阅读 · 0 评论 -
浅谈设计模式——简单工厂模式
简介:简单工厂模式又叫静态工厂方法模式,它定义一个具体的工厂类来负责创建一些类的实例,而这些被创建的类有一个共同的父类,这样就可以实现面向抽象而不是面向具体编程。组成:工厂类、抽象类和实现抽象类的具体类。 下面我们以创建动物园的动物为类实现一个简单工厂模式。首先,我们创建一个动物的公共接口package my.pattern.simplefactory;//创建动物类的接口原创 2012-02-22 20:17:10 · 459 阅读 · 0 评论 -
浅谈设计模式——开山篇
本人菜鸟一个,学习JAVA也有半年时光。在这半年的学习中懵懵懂懂的也摸到了一些面对对象的编程思想。直到偶然在图书馆借阅到一本《设计模式》,读后大悟,原来程序是可以这样写的。故而欣喜若狂,想将23中设计模式一一展现。部分代码任借助书中例子讲解,希望能够博的大家眼球。本人菜鸟,如有错误请勿喷!一、设计模式分类 创建型模式:原创 2012-02-22 19:30:49 · 438 阅读 · 0 评论 -
浅谈设计模式——适配器模式
在工作的时候,有时候我们并不知道系统提供的对外接口会被那些系统使用。如果这个对外接口只被一个外部系统使用,问题不大,可能要提供的方法还不是很多;如果这个外部接口要被很多的外部系统使用,问题就来了,如果返回的类型不同,势必我要写比较过的方法来实现,这样便加大了代码的冗余度。有没有一种方法可以解决这个问题呢,这是我们今天要讲的设配器模式。当客户需要什么类型是,就只需要对接口的方法进行包装,从而实现自己原创 2012-03-07 11:35:06 · 131 阅读 · 0 评论