文章列表
第六个设计模式之:模板方法
模板方法模式主要是对大方法体细化
一.UML示意图
二.组成部分
1. 抽象构件
2. 具体构件
三.代码例子:我用一个简单的例子来说明—计算食物价格
1. 抽象构件
package com.eekq.template;
public abstract class AbstractFood {
/**模板方法*/
public float pay(){
//公共的业务代码
第五个设计模式:合成模式
合成模式把部分和整体关系用树结构表示,是属于对象的结构模式。合成模式要对组合的对象进行管理,所以在一定位置给予对象的相关管理方法,如:add(),remove()等.合成模式中对象的管理有两种方案。
1.安全方式:此方式只允许树枝构件有对象的管理方法。
2.透明方式:此方式只允许树枝和树叶都有对象的管理方法,但树叶对象中的管理方法无实际意义。
一.UML示意图
二.组成部分
抽象构件:抽象组合对象的公共行为接口
树叶构件:树叶对象,没有下级子对象
树枝构件:树枝对象,树枝对象可以包含一个或多个其他树枝或树叶对象
三.代码例子:我以一个超市购物为例
(一)、安全方式
...
第四个设计模式:装饰模式
装饰模式是对对象功能增强时,平时使用继承的一种替代方案
一.UML示意图:
二.组成部分:
1. 抽象构件:原始的功能接口
2. 具体构件:具体的原始功能类
3. 装饰角色:持有具体构件类的对象,以便执行原有功能
4. 具体装饰:具体扩展的功能在这里
三.例子代码:使用装饰模式来演示一个对”行走”功能扩展的例子(听音乐+行走和唱歌+行走)
1. 抽象构件
package com.eekq.decorator;
publicinterface Component {
/**原始接口*/
今天给大家介绍第三个设计模式:策略模式
一.策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用
UML示意图
二.组成部分:
1. 环境角色:持有一个策略类引用
2. 抽象策略
3. 具体策略:相关的算法或操作
三.代码例子
1. 抽象策略
package com.eekq.strategy;
public interface IStrategy {
/**策略方法*/
public abstract double add();
}
上一节中已经介绍了简单工厂,我想大家应该有一定认识了。然后简单工厂有它自身的局限性~今天继续为大家介绍工厂模式之工厂方法 .
UML示意图:
组成部分:
1.抽象工厂
2.具体工厂
3.抽象产品
4.具体产品
代码例子:
1. 抽象工厂
package com.eekq.creator.factorymethod;
public interface IFactory {
//抽象工厂,工厂方法
第一个设计模式:简单工厂
UML示意图:<v:shapetype id="_x0000_t75" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" filled="f" stroked="f" coordsize="21600,21600" o:spt="75"> </v:shapetype>
<v:shapetype path="m@4@5l@4@11@9@11@9 ...
用自己的话简单谈一下设计 模式。对于面向对象程序开发来说,不会设计模式的人写出来的代码我相信也是杂乱无章的,不易于维护和扩展的。设计模式正是因为程序的维护性和扩展性提出的。是面向对象前辈大师们使用面向对象的经验。大家不要为了模式而模式,我们要从设计模式例子中学会的是思想,框架。
怎样学习设计模式
一,先理解设计原则
二,再学习经典的23种设计模式
设计模式分为三类
1,创建模式:创建对象的方案
2,结构模式:对象优化合理的组织方案
3,行为模式:对在不同的对象间划分责任和对算法的抽象
- 2006-11-25 16:53
- 浏览 1009
- 评论(0)