网站首页 > 教程分享 正文
简单工厂又叫静态工厂
简单工厂实现方式如上图所示。
具体实现方式就是根据工厂类传入的参数进行判断到底创建那种具体产品。
无论有多少种具体产品,以及这些产品之间具有怎样的结构关系,工厂类始终不会受到影响,但是增加新的产品必然会导致工厂类的修改,这样并不符合"开-放"原则。而且在工厂类中含有创建产品的判断逻辑,使得系统在将来扩展的时候很困难。增加新的产品都需要修改工厂创造产品的逻辑,这样做是很痛苦的。
工厂方法
工厂方法模式的用意是定义一个创建产品的工厂接口,将产品对象的创建推迟到工厂的子类中。
上图为工厂方法模式结构其中:
抽象工厂(Creator)与业务无关,创建对象的工厂类需要实现这个抽象工厂。
具体工厂:是实际创建产品的工厂。
抽象产品:创建具体产品的超类型。
具体产品:需要创建的具体的产品。
如果系统需要增加一个产品就向系统中增加一个具体产品类和具体工厂类,完全不需要修改抽象工厂或者其他具体工厂。
工厂方法创建返回的类型还应该是抽象产品,而不是具体产品,这样才能保证产品的多态性。
抽象工厂
同一个具体工厂角色创建同一个产品族的产品。
抽象工厂模式类图如下所示
猜你喜欢
- 2024-10-18 设计模式之 抽象工厂(抽象工厂模式的简单应用)
- 2024-10-18 Aha!设计模式(3)-抽象工厂(2)(抽象工厂模式结构图)
- 2024-10-18 Java经典设计模式-抽象工厂模式(抽象工厂模式在spring的应用)
- 2024-10-18 Java高级编程细节——工厂模式之抽象工厂
- 2024-10-18 简单工厂,工厂方法,抽象工厂(简单工厂,工厂方法,抽象工厂区别)
- 2024-10-18 Aha!设计模式(1)-抽象工厂(1)(抽象工厂实例)
- 2024-10-18 抽象工厂模式(Abstract Factory)(抽象工厂模式的意图是)
- 2024-10-18 设计模式记录-抽象工厂模式(抽象工厂模式与工厂方法模式)
- 2024-10-18 你还在new对象吗?用个“抽象工厂模式”生产对象它不香吗
- 2024-10-18 白话设计模式之抽象工厂模式(抽象工厂模式是简单工厂模式的升级版本)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)