-
设计模式
收藏菜鸟用JAVA实现23种设计模式的学习过程,一步一步
最近更新文章
15.设计模式之外观模式
定义:提供了一个统一接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用
最少知识原则:只和你的密友谈话。
解释:不要让太多的类耦合在一起,免得修改系统中一部分,会影响到其它部分。如果许多类之间相互依赖,那么这个系统就会变得易碎。
例子:
用户在键盘上点击开机键,然后加载CPU,内存,硬盘驱动等信息,但是,客户只点了开机键,其它 ...
14.设计模式之适配器模式
1 定义:
适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作
2 解决的问题
使接口不兼容的类可以在一起工作。
3 模式中的角色
1)目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。
2)需要被适配的类(Adaptee):被适配 ...
13.设计模式之原型模式
原型模式是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。
原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类数据。
原型模式的核心是一个clone()方法,通过该方法进行对象拷贝,Java提供了一个Clon ...
12.设计模式之建造者模式
1. 定义:
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
2.
四个要素
产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组成。
抽象建造者:引入抽象建造者的目的,是 ...
11.设计模式之代理模式
到网上找这个模式的例子,不知为何,突然觉得这个和之前写的装饰器模式特别像
感觉都做了一件:方法增强!
代理模式:为其他对象提供一种代理以控制对这个对象的访问.
这里要理解【控制】为何物,又是如何做到控制的。
代理模式有以下角色:
抽象角色:声明真实对象和代理对象的共同接口;
代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对 ...
10.设计模式之装饰模式
装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象添加功能。通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生对应的子类来扩展,抑或是使用对象组合的方式。显然,直接修改对应的类这种方式并不可取。在面向对象的设计中,而我们也应该尽量使用对象组合,而不是对象继承来扩展和复用功能。装饰器模式就是基于对象组合的方式,可以很灵活的给对象添加所需要的功能。装饰器模式的本质就是动态组合。 ...
9. 设计模式之命令模式
命令模式
将来自客户端的请求传入一个对象,从而使你可用不同的请求对客户进行参数化。用于“行为请求者”与“行为实现者”解耦,可实现二者之间的松耦合,以便适应变化。分离变化与不变的因素。
在面向对象的程序设计中,一个对象调用另一个对象,一般情况下的调用过程是:创建目标对象实例;设置调用参数;调用目标对象的方法。
但在有些情况下有必要使用一个专门的类对这种调用过程加以封装,我们 ...
8.设计模式之组合模式
先看一下结构图
2. 如果把Composite模式看成是树形结构的话,那么它主要角色有:
1)抽象构件角色(Component):该角色是一个抽象类,它定义了一些操作增删树叶(Leaf)的操作。
2)树枝构件角色(Composite):树枝上有很多树干,树枝也是树干的一种。
3.设计模式之工厂模式
1. 简单工厂模式
简单工厂其实不是一个设计模式,反而比较像是一种编程习惯。
我的理解:简单工厂模式只是把类实例化的方法【new()】放在了工 ...
2.设计模式之单例模式
单例模式应该是23种设计模式中最简单的一种。这里的简单我觉得应该是代码实现上的简单和思维的简单:类只提供一个全局变量。但是虽然简单,但若仔细研究,亦有万千变化,深藏奥妙。
1. 定义:
单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
这个类称为单例类
2. 单例模式 特点
a. 单例类只可有一个实例
b.单例类必须自己创建自己这惟一的实例
c.单 ...
0.设计模式导航
最近这段时间主要是写设计模式,因为本人也是初学,本着和大家切磋交流的虔诚之心,
文中难免有偏颇之处
希望大家可以批评指正,共同进步,最终助我进步。
我觉得设计模式可能更偏重于思想,可能在代码的实现上会各有不同,如果你在开发中
利用了框架又会有所不同,当然框架本身也会利用到了各种了模式,如果我们可以掌握
设计模式,一方面在解决问题时候会多有一种思路也会让自己的代码显得更加优雅,另
...
7.设计模式之观察者模式
1. 概述 观察者(Observer)模式是对象的行为型模式,又叫做发表-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-收听者(Source/Li ...
6.设计模式之责任链模式
责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任
我的理解是:消息在链上不断的传递,直到遇到一个可以处理此消息的处理器,【这个处理器在链上】
或者说,消息 ...
5.设计模式之模板模式
模板模式
定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤
我的理解模板模式,定义了方法执行的总体步骤,但每一步的具体实现由子类复写
关键点:模板方法用关键字final 需要复写的方法用abstract 修饰
Example: 考试:三步:发卷,做卷,交卷 现在我们实现考历史和考数学的情况
1.设计模式之前奏
一、设计模式的分类
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结 ...
4.设计模式之策略模式
1. 什么是策略模式?
策略模式针对的是在不同的环境中,客户端选择使用不同的策略。
2. 为什么使用策略模式?
当增加一种新的算法的时候,只需要在客户端登记即可。相当于“可插入的算法”。扩展性更好。
3. 什么时候使用策略模式?
如果一个系统需要动态的从几种算法中选择一种算法。则使用策略模式。
4. 策略模式在java中的应用
比如说 awt包中的Container提供了不同的排 ...