设计模式应试复习篇(二)——6种创建型模式的类图结构(1~3种)

本篇和下一篇将给出例题说明6种创建型模式的类图应该怎么画,每个设计模式会有两道例题。首先建议小伙伴们可以先复习一下UML中类图各个部分的含义,类图符号代表了什么关系这些知识点哦,这个系列结束过一段时间我会把UML部分也做一下整理。如果你已经了解了,那么我们开始吧!

1、简单工厂模式

1)简单工厂模式包含如下角色:

Factory:工厂角色,负责实现创建所有实例的内部逻辑

Product:抽象产品角色,是所创建的所有对象的父类,负责描述所有实例所共有的公共接口

ConcreteProduct:具体产品角色是创建目标,所有创建的对象都充当这个角色的某个具体类的实例

2)模式结构:

3)实例1:简单电视机工厂 某电视机厂专为各知名电视机品牌代工生产各类电视机,当需要海尔牌电视机时只需要在调用该工厂的工厂方法时传入参数“Haier”,需要海信电视机时只需要传入参数“Hisense”,工厂可以根据传入的不同参数返回不同品牌的电视机。现使用简单工厂模式来模拟该电视机工厂的生产过程。

实例二:权限管理 在某OA系统中,系统根据对比用户在登录时输入的账号和密码以及在数据库中存储的账号和密码是否一致来进行身份验证,如果验证通过,则取出存储在数据库中的用户权限等级(以整数形式存储),根据不同的权限等级创建不同等级的用户对象,不同等级的用户对象拥有不同的操作权限。现使用简单工厂模式来设计该权限管理模块。

2、工厂方法模式

1)工厂方法模式包含如下角色:

Product:抽象产品

ConcreteProduct:具体产品

Factory:抽象工厂

ConcreteFactory:具体工厂

2)模式结构

3)实例一:电视机工厂 将原有的工厂进行分割,为每种品牌的电视机提供一个子工厂,海尔工厂专门负责生产海尔电视机,海信工厂专门负责生产海信电视机,如果需要生产TCL电视机或创维电视机,只需要对应增加一个新的TCL工厂或创维工厂即可,原有的工厂无须做任何修改,使得整个系统具有更加的灵活性和可扩展性。

实例二:日志记录器 某系统日志记录器要求支持多种日志记录方式,如文件记录、数据库记录等,且用户可以根据要求动态选择日志记录方式,现使用工厂方法模式设计该系统。

3、抽象工厂模式

1)抽象工厂模式包含如下角色:

AbstractFactory:抽象工厂

ConcreteFactory:具体工厂

AbstractProduct:抽象产品

Product:具体产品

2)模式结构

3)实例一:电器工厂 一个电器工厂可以产生多种类型的电器,如海尔工厂可以生产海尔电视机、海尔空调等,TCL工厂可以生产TCL电视机、TCL空调等,相同品牌的电器构成一个产品族,而相同类型的电器构成了一个产品等级结构,现使用抽象工厂模式模拟该场景。

实例二:数据库操作工厂 某系统为了改进数据库操作的性能,自定义数据库连接对象Connection和语句对象Statement,可针对不同类型的数据库提供不同的连接对象和语句对象,如提供Oracle或SQL Server专用连接类和语句类,而且用户可以通过配置文件等方式根据实际需要动态更换系统数据库。使用抽象工厂模式设计该系统。

猜你喜欢

转载自blog.csdn.net/qq_40996041/article/details/83549453
今日推荐