【设计模式学习笔记】——工厂系列

本文深入讲解了三种设计模式:简单工厂模式、工厂方法模式及抽象工厂模式。通过具体案例介绍了每种模式的目的、简易类图及其应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计模式学习

一、简单工厂模式

1. 简单说明

工厂模式的目的在于提高程序的可扩展性。简单工厂,它是为了让程序有一个更好地封装,降低程序模块之间的耦合程度,就是去创建一个创建对象的工具类(接口),在这个工具类(接口)里面,我们就可以进行一些其他操作,比如对象的初始化。

2. 简易类图


1)  工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑,用来创建产品

2)  抽象产品角色:它一般是具体产品继承的父类或者实现的接口。

3)  具体产品角色:工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。

3. 案例

一个生产载具的工厂,可生产汽车和卡车两种产品。


二、工厂方法模式

1. 简单说明

去掉了简单工厂模式中工厂方法的静态属性,使得它可以被子类继承。这样在简单工厂模式里集中在工厂方法上的压力可以由工厂方法模式里不同的工厂子类来分担。定义了一个创建对象的接口,但由子类决定要实例化哪一个。工厂方法让类把实例化推迟到了子类。

2. 简易类图


1) 抽象工厂角色:这是工厂方法模式的核心,是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接口来实现。

2) 具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。

3) 抽象产品角色:它是具体产品继承的父类或者是实现的接口。在java中一般有抽象类或者接口来实现。

4) 具体产品角色:具体工厂角色所创建的对象就是此角色的实例。在java中由具体的类来实现。

3. 案例

工厂可以生产汽车,由同一种生产方法生产的汽车有两种,一种是奥迪、一种是本田(除去类图中“工厂2”“产品3”“产品4”)。

 

 

三、抽象工厂模式

1. 简单说明

工厂方法模式中,具体工厂间是完全独立的,除了都是抽象工厂的子类没有交集。在抽象工厂模式中提供两个具体工厂角色,分别对应于这两个具体产品角色,每一个具体工厂角色只负责某一个产品角色的实例化。每一个具体工厂类只负责创建抽象产品的某一个具体子类的实例。

2. 简易类图

 

3. 案例

工厂可以生产载人载具或载货载具,都有两种生产方式生产汽车或卡车,四种产品奥迪(只载人)、吉普(主要载人,可以载货)、皮卡(主要载货、可以载人)、解放(只载货)。


主页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值