| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 设计模式中的工厂方法模式 -> 正文阅读 |
|
[Java知识库]设计模式中的工厂方法模式 |
一、简单工厂模式实例Demo1 ?1、基本概念工厂模式又称工厂设计模式,其在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型。 主要目的是定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。提高了代码的扩展性,屏蔽每一个功能类中的具体实现逻辑。让外部可以更加简单地只知道调用即可。 2、结构图定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。 Factory(工厂):核心部分,负责实现创建所有产品的内部逻辑,工厂类可以被外界直接调用,创建所需对象。 Product(抽象类产品):工厂类所创建的所有对象的父类,封装了产品对象的公共方法,所有的具体产品为其子类对象。 ConcreteProduct(具体产品):简单工厂模式的创建目标,所有被创建的对象都是某个具体类的实例。它要实现抽象产品中声明的抽象方法。 3、实现案例案例背景:音频编码格式分AAC、AACLD、ADPCM、G711等等,而播放某次音频只需要创建某个编码类型的类(初始化某个类的资源等)即可。 1、工厂类
AEncManager.h作为工厂类。其中的CreateHandle根据外部传入的编码格式进行内部编码类的构建。 2、抽象类产品
各类编码格式实现的父类。 3、具体产品以AAC为例,AAC实现类是抽象类的子类。
AAC编码类里面会将PCM数据编码为AAC数据。 二、工厂方法目的:简单工厂的延伸,弥补简单工厂的缺陷。 方法:父类工厂负责定义创建产品对象的公共接口,子类工厂负责生产具体的产品对象。产品类的实例化操作延迟到工厂子类中完成。 实例Demo2 三、抽象工厂目的:泛华工厂方法模式,让每个具体工厂可以生产多个具体商品。 方法:在一个工厂里聚合多个同类产品,即打包生产。 案例Demo3 ? 上层
四、总结
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 12:09:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |