java工厂模式的理解_Java工厂模式浅析理解

由于本人缺乏工作经验,本篇文章作为随笔,只是对工厂模式有一个简单的认识

工厂模式分为以下三种:

1:简单工厂(Simple Factory)。

2:工厂方法(Factory Method)。

3:抽象工厂(Abstract Factory)。

本次模拟的是第三种——抽象工厂

抽象工厂的大致思路

多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。

一个抽象工厂类,可以派生出多个具体工厂类。

每个具体工厂类可以创建多个具体产品类的实例。

好了,不多说,根据上面的思路来贴一下部分代码

在这里,我是以汽车、食物两种类别来进行模拟

汽车——宝马、奔驰

食物——苹果、橘子

首先编写食物类,在这里,我将Food作为抽象类(也可作为接口)

public abstract classFood {public abstract voideat();

}

汽车也一样

public abstract classCar {public abstract voidcreat();

}

然后将,宝马,奔驰继承Car ,橘子,苹果继承食物

public class Apple extendsFood{publicApple() {super();this.eat();

}

@Overridepublic voideat() {

System.out.println("Apple...eat");

}

}

public class Benz extendsCar{

@Overridepublic voidcreat() {

System.out.println("benz...creat");

}

}public class Orange extendsFood{

@Overridepublic voideat() {

System.out.println("Orange...eat");

}public class BMW extendsCar{

@Overridepublic voidcreat() {

System.out.println("BMW...creat");

}

}

然后,下一个思路就是将工厂分为A和B 实现分类显示的功能,在这里我将Apple和BMW作为FactoryA ,Orange和Benz作为FactoryB

并且,将FactoryA和FactoryB实现Factory的接口以实现分类的效果

public class Factory1 implementsFactory {publicCar creat() {return newBenz();

}publicFood eat() {return newApple();

}

}

至此,以达到需要的效果

当调用FactoryA时,控制台打印出Apple,BMW

当调用FactoryA时,控制台打印出Orange,Benz

声明:本篇文章理解于 http://www.cnblogs.com/zhouqiang/archive/2012/07/20/2601365.html的思路,但其中也融合了本人的思路。

如有其他意见,请评论版上评论,谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值