JAVA设计模式(抽象工厂模式)
2017-04-12 12:22
363 查看
今天开始,从新整理一下闹心java的设计模式;其实我不想去整理它,但是过一段时间老是忘记,因为。。。。不经常手敲!!
闲话少喷!!首先了解一下什么是“抽象工厂模式”,他是干什么用的哦??他用来创建一组相关或者相互依赖的对象。
抽象工厂模式都适用在怎样的使用场景呢?当需要创建的对象是一系列相互关联或相互依赖的产品族时,便可以使用抽象工厂模式。说的更明白一点,就是一个继承体系中,如果存在着多个等级结构(即存在着多个抽象类),并且分属各个等级结构中的实现类之间存在着一定的关联或者约束,就可以使用抽象工厂模式。假如各个等级结构中的实现类之间不存在关联或约束,则使用多个独立的工厂来对产品进行创建,则更合适一点。
在了解什么是抽象模式之前,我们先来了解一下什么是“产品族”、“产品结构”。因为我们在学习她的时候,会在很多地方看到。就像玩王者荣耀手游一样,我就喜欢使用大乔,嘿嘿,跑题了!!好了, 那 “产品族”、“产品结构”到底什么意思??简单的从网上整合了一下:所谓的产品族,是指位于不同产品等级结构中功能相关联的产品组成的家族。抽象工厂模式所提供的一系列产品就组成一个产品族;而工厂方法提供的一系列产品称为一个等级结构。
接下来,我不画图,我只上代码解释!!画图太麻烦!
先了解一下代码思路:抽象工厂模式,比如说:首先要有一个IXimiFactory工厂(产品族),工厂生产 IXimiProduct产品(产品等级结构);完成这些工作与过程需要具体的实现工厂、类和方法去实现完成;
抽象工厂(产品族):
具体工厂类(产品族):
工厂中要生成的抽象产品(三个产品结构):
工厂中要具体进行生产的产品(三个产品结构):
然后,具体怎么去生产,我们不用管!只要调用封装的方法实现即可。这样就完成了使用抽象模式实现的功能!
附图理解:
闲话少喷!!首先了解一下什么是“抽象工厂模式”,他是干什么用的哦??他用来创建一组相关或者相互依赖的对象。
抽象工厂模式都适用在怎样的使用场景呢?当需要创建的对象是一系列相互关联或相互依赖的产品族时,便可以使用抽象工厂模式。说的更明白一点,就是一个继承体系中,如果存在着多个等级结构(即存在着多个抽象类),并且分属各个等级结构中的实现类之间存在着一定的关联或者约束,就可以使用抽象工厂模式。假如各个等级结构中的实现类之间不存在关联或约束,则使用多个独立的工厂来对产品进行创建,则更合适一点。
在了解什么是抽象模式之前,我们先来了解一下什么是“产品族”、“产品结构”。因为我们在学习她的时候,会在很多地方看到。就像玩王者荣耀手游一样,我就喜欢使用大乔,嘿嘿,跑题了!!好了, 那 “产品族”、“产品结构”到底什么意思??简单的从网上整合了一下:所谓的产品族,是指位于不同产品等级结构中功能相关联的产品组成的家族。抽象工厂模式所提供的一系列产品就组成一个产品族;而工厂方法提供的一系列产品称为一个等级结构。
接下来,我不画图,我只上代码解释!!画图太麻烦!
先了解一下代码思路:抽象工厂模式,比如说:首先要有一个IXimiFactory工厂(产品族),工厂生产 IXimiProduct产品(产品等级结构);完成这些工作与过程需要具体的实现工厂、类和方法去实现完成;
抽象工厂(产品族):
public interface IXimiFactory { //获取生产电脑的对象 public IXimiComputor getComputerInstance(); public IXimiPhone getPhoneInstance(); public IXimiTV getTVInstance(); public IXimiLight getLightInstance(); }
具体工厂类(产品族):
public class XimiFactory implements IXimiFactory { @Override public IXimiComputor getComputerInstance() { return new XimiComputor() ; } @Override public IXimiPhone getPhoneInstance() { return new XimiPhone(); } @Override public IXimiTV getTVInstance() { return new XimiTV(); } @Override public IXimiLight getLightInstance() { return new XimiLight(); } }
工厂中要生成的抽象产品(三个产品结构):
//Ximi灯泡 public interface IXimiLight { public void productRedLight(); public void productBlueLight(); public void productSmartLight(); public void productCup(); }
//Ximi手机 public interface IXimiPhone { public void productPhone(); }
//Ximi电视 public interface IXimiTV { public void productTV(); }
工厂中要具体进行生产的产品(三个产品结构):
//Ximi灯泡 public class XimiLight implements IXimiLight{ @Override public void productRedLight() { } @Override public void productBlueLight() { } @Override public void productSmartLight() { } @Override public void productCup() { } }
//Ximi手机 public class XimiPhone implements IXimiPhone{ @Override public void productPhone() { } }
//Ximi电视 public class XimiTV implements IXimiTV{ @Override public void productTV() { } }
然后,具体怎么去生产,我们不用管!只要调用封装的方法实现即可。这样就完成了使用抽象模式实现的功能!
public class MainTest { public static void main(String[] args){ XimiFactory ximiFactory = new XimiFactory(); ximiFactory.getComputerInstance().productComputor(); ximiFactory.getPhoneInstance().productPhone(); ximiFactory.getTVInstance().productTV(); XimiLight light = (XimiLight) ximiFactory.getLightInstance(); light.productBlueLight(); light.productRedLight(); light.productSmartLight(); light.productCup(); } }
附图理解:
相关文章推荐
- Java设计模式-----Abstract Factory抽象工厂模式
- java设计模式---Abstract Facotry Pattern---抽象工厂模式
- Java与设计模式(03)--抽象工厂模式
- Java设计模式二:抽象工厂模式(Abstract Factory)/工厂方法(Factory Method)
- Java设计模式 - 抽象工厂模式(Abstract Factory)
- Java 可复用的面向对象的设计模式之 工厂模式Factory详解 :简单工厂模式 工厂方法模式 抽象工厂模式
- java设计模式之工厂方法模式以及简单工厂模式还有抽象工厂模式
- java设计模式——抽象工厂模式
- JAVA设计模式 — 抽象工厂模式(Abstract Factory)
- Java设计模式之三(抽象工厂模式)
- java 设计模式 学习笔记(3) 抽象工厂模式
- 浅谈 java 设计模式--抽象工厂模式(AbstractFactory pattern)
- Java设计模式圣经连载(03)-抽象工厂模式
- java 设计模式-创建模式之抽象工厂模式
- 23种经典设计模式的java实现_1_抽象工厂模式
- Java设计模式-----Abstract Factory抽象工厂模式
- Java设计模式-----Abstract Factory抽象工厂模式
- JAVA设计模式之抽象工厂模式
- Java设计模式之抽象工厂模式
- JAVA设计模式☞☞工厂方法模式和抽象工厂模式区别