惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 司徒正美
M
MIT News - Artificial intelligence
博客园_首页
IT之家
IT之家
L
LangChain Blog
D
DataBreaches.Net
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
人人都是产品经理
人人都是产品经理
博客园 - Franky
云风的 BLOG
云风的 BLOG
罗磊的独立博客
量子位
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 【当耐特】
博客园 - 叶小钗
S
SegmentFault 最新的问题
Stack Overflow Blog
Stack Overflow Blog
B
Blog
T
Tailwind CSS Blog
A
About on SuperTechFans
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

博客园 - 心雨无痕

升级openssl和openssh linux配置LVM 杂七杂八 .net程序包含webbrowser插件时遇到的各种问题 mysql连接远程服务器很慢的解决方法 centos安装php需要注意的问题 centos配置nfs杂七杂八 iptables配置网络端口转发 桥接模式 适配器模式 单例模式 原型模式 工厂方法模式 简单工厂模式 建造者模式 ActionScript中Object和Dictionary的区别 FlashBuilder4.5破解方法 设计模式浅见 了解下常见的开源协议
抽象工厂模式
心雨无痕 · 2012-04-24 · via 博客园 - 心雨无痕

    抽象工厂的概念实现事实上就是接口和抽象类,用过Java、C++的人都了解这个概念,这里不多说了。

    为什么要用这个模式

    可以将具体的产品抽象化,使得具体的业务逻辑和产品概念分离。比如说写一个水果应用模块吧(有多种水果,比如[苹果]、[香蕉]、[桔子]),所有的水果都有2个方法,A()和B(),[苹果]、[香蕉]、[桔子]的这2个方法实现是不同的,甚至有可能是不同的程序员写的,对外部应用来讲,只需要传入一个水果对象并调用A和B两个方法,并不关心我传入的对象是什么水果,这种情况下,使用抽象工厂模式就可以对代码进行解耦,即定义一个接口或者抽象类[水果],[苹果]、[香蕉]、[桔子]类都实现这个接口或者继承这个抽象类。外部应用调用时只需要传入[水果]并调用方法即可,以后再有其他水果,直接添加新的类就可以了。