大白话工厂模式及使用场景-阿里云开发者社区

开发者社区> 负债程序猿> 正文

大白话工厂模式及使用场景

简介: 设计模式共23种,按功能可以分为创建型、结构型、行为型,工厂模式属于创建型模式,主要用于创建对象
+关注继续查看

设计模式共23种,按功能可以分为创建型、结构型、行为型,工厂模式属于创建型模式,主要用于创建对象


比方说造一辆车:


不使用工厂模式


我需要造宝马的时候,就写一个造宝马的方法,需要造奔驰的时候就写一个造奔驰的方法,缺陷很明显,后期不易维护、代码冗余、不符合面向对象的思想;


使用工厂模式


我只需要写一个造汽车的方法,在内部做一些判断,如果参数是宝马我就造宝马,如果是奔驰我就造奔驰,这样后期如果造汽车,只需要调用它的方法传入参数就行;


工厂模式能细分为简单工厂,工厂方法和抽象工厂三种


常见的有简单工厂和工厂方法两种


简单工厂中包含工厂、产品和具体产品三个角色。其中工厂是整个模式的核心,这个类当中包含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的对象。而客户端则可以免除直接创建产品对象的责任。从这个角度上说简单工厂实现了对责任的分割。另外,由于客户端所使用的对象都由工厂生成,并统一转型为产品类型,所以客户端无需关心自己得到的是哪一个具体产品,这样在添加新的具体产品时,就不需要修改客户端的代码,从某种程度上也实现了开放-封闭法则。但是每当需要添加新的具体产品时,就需要修改工厂类。


工厂方法使用了面向对象的多态性,保留了简单工厂的优点,而且克服了它的缺点。

首先,在工厂模式当中,核心的工厂类不再负责所有产品的创建,而是将具体的产品创建交给子类去做。这个核心类成了抽象工厂角色,仅仅负责给出具体工厂子类必须实现的接口。这种进一步抽象的结果是,可以允许系统在不修改具体工厂角色的情况下引进新的产品。


在现实的开发当中,典型的例子就是在servcie层中需要得到DAO对象,通常就会抽象出DAO接口作为产品,接口的实现类作为具体产品,然后提供工厂供service使用。这样就可以分离service和dao的耦合,当DAO添加新的实现类是,service不需要修改。提升系统的扩展性和维护性。


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10076 0
阿里云 E-MapReduce产品优势及使用场景
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。
1860 0
Redis中5种数据结构的使用场景介绍
云栖社区:https://yq.aliyun.com/articles/64264?spm=5176.100240.searchblog.52.vi6jxU
860 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13884 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11889 0
阿里云加密服务产品优势及使用场景
加密服务 ( AliCloud Data Encryption Service ) 是云上的数据安全加密解决方案。服务底层使用经国家密码管理局检测认证的硬件密码机,通过虚拟化技术,帮助用户满足数据安全方面的监管合规要求,保护云上业务数据的隐私和机密。
1470 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7365 0
+关注
负债程序猿
知道的越多,不知道的越多
119
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载