1 / 78
文档名称:

第六篇面向对象的软件设计模式.ppt

格式:ppt   大小:1,561KB   页数:78页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第六篇面向对象的软件设计模式.ppt

上传人:85872037 2018/8/11 文件大小:1.52 MB

下载得到文件列表

第六篇面向对象的软件设计模式.ppt

文档介绍

文档介绍:第六章面向对象的软件设计模式
1
面向对象的软件设计模式
创建型设计模式——就是用来创建对象的模式。
结构型设计模式——讨论类和对象的结构。采用继承机制来组合接口或通过组合一些对象,以实现新的功能。
行为型设计模式——描述算法对象间职责的分配。行为型设计模式不仅描述对象或类的模式,还描述它们之间的通信模式。
2
创建型设计模式
创建型设计模式——就是用来对象创建的模式。
创建型模式的目标是简化对象的创建和方便对象的管理。
3
工厂模式(Factory method)
工厂模式的由来
工厂模式的结构
工厂模式的参与者
应用举例
适用性及效果分析
4
工厂模式的由来(1/2)
在面向对象编程中, 很普遍的方法是用一个new操作符产生一个对象实例, new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。
首先,要使用new运算符创建一个对象我们必须清楚所要创建的对象的类信息,而有时候这并不现实,譬如打开一个视频文件需要一个播放器对象,但是用户可能不知道具体播放器叫什么名字,而只需要系统分派给这个视频文件一个合适的播放器就可以了,这种情况下用new运算符是不适宜的。
5
工厂模式的由来(2/2)
其次,许多类型对象的创造需要一系列的步骤:可能需要计算或取得对象的初始设置;选择生成哪个子对象实例;或在生成需要的对象之前必须先生成一些辅助功能的对象等。在这些情况下,新对象的建立就是一个过程,而不是一个简单的操作。
为了方便地完成这些复杂的对象创建工作,这就引入了工厂模式。
工厂模式又称虚拟构造机(Virtual Constructor)。它定义一个用于创建对象的接口,让子类决定实例化哪一个类,即将类的实例化延迟到子类。
工厂模式包括Factory、Concrete Factory、Product 和ConcreteProduct 四个部分。
6
工厂模式的结构
7
工厂模式的参与者
Product:产品角色,定义工厂方法所创建的对象的接口。
ConcreteProduct:具体的产品角色,实现Product接口。
Factory:“抽象的工厂”角色,声明工厂方法,该方法返回一个Product类型的对象。Factory也可以定义一个工厂方法的默认实现,它返回一个默认的ConcreteProduct对象。可以调用工厂方法以创建一个Product对象。
ConcreteFactory:具体的工厂角色,创建具体产品的子工厂,重写工厂方法以返回一个ConcreteProduct实例。
8
应用举例
假设快餐店KFC要给顾客提供一系列的食品,如鸡腿、鸡翅等,顾客每要求一种食品,KFC应该可以很快“生产”出来,如何使用面向对象的方法,并采用工厂模式实现这个过程?
代码如下:
//抽象的KFC食品,Product角色
public abstract class KFCFood
{
public abstract void show();
}
//下面两个类表示两种具体的KFC食品,它们继承了抽象的KFC食品
9
//Concrete Product1角色
public class Chicken: KFCFood
{
public override void show()
{
(“鸡腿+1”);
}
}
//Concrete Product2角色
public class Wings: KFCFood
{
public override void show()
{
(“鸡翅+1”);
}
}
10