一、简单工厂模式
工厂可以创建同一系列的具体产品,工厂根据具体参数,创建相应的产品
没有工厂接口,只是一个工厂创建多个具体产品
例子:一个饭店(工厂)--一个卖饭窗口(产品接口)--炒鸡蛋,炒五花肉(产品,一系列具体种类)
interface IFood{
public void food();
}
class Eggs implements IFood{
public void food(){
System.out.println("eggs");
}
}
class Meat implements IFood{
public void food(){
System.out.println("meat");
}
}
class FoodStore{
public IFood getFood(int i){
if(i==1){
return new Meat();
}
if(i==2){
return new Eggs();
}
return null;
}
public static void main(String args[]){
//去饭店ef--点饭getFood--开吃food
EatFactory ef=new EatFactory();
ef.getFood(1).food();
ef.getFood(2).food();
}
}
二、工厂模式
具体工厂生产一种具体产品
例子:一个饭店接口--炒鸡蛋店(具体工厂),炒肉店(具体工厂)
interface IEat{
public void eat();
}
class Eggs implements IEat{
public void eat(){
System.out.println("eggs");
}
}
class Meat implements IEat{
public void eat(){
System.out.println("meat");
}
}
/**
*工厂接口,与工厂具体实现
*对吃没有要求,肉蛋均可
*每一个具体工厂对应一个具体产品
*/
interface IFactory{
public IEat createFood();
}
class EggsFactory implements IFactory{
public IEat createFood(){
return new Eggs();
}
public static void main(String args[]){
//进了肉店吃炒肉
IFactory factory=new MeatFactory();
factory.createFood();
}
}
class MeatFactory implements IFactory{
public IEat createFood(){
return new Meat();
}
}
三、抽象工厂模式
出现了产品簇,多个产品簇的等级结构相同
例子:
将肉蛋组合成产品并分类……鸡品、鸭品
它们的等级结构都是肉蛋
所以抽象工厂的行为是造肉,造蛋
具体工厂为吃鸡工厂,吃鸭工厂
interface IEgg{
public void eatEgg();
}
interface IMeat{
public void eatMeat();
}
class ChickenEggs implements IEgg{
public void eatEgg(){
System.out.println("chicken henapple");
}
}
class DuckEggs implements IEgg{
public void eatEgg(){
System.out.println("duck egg");
}
}
class ChickenMeat implements IMeat{
public void eatMeat(){
System.out.println("chicken meat");
}
}
class DuckMeat implements IMeat{
public void eatMeat(){
System.out.println("duck meat");
}
}
/**
*抽象工厂,创建的是
*一个产品簇就是(一个整体中的)多个模块--------这里是蛋和肉组成一个产品肉蛋
*多个等级结构---------------这里产品的等级结构都是蛋和肉
*等级结构相同,所有使用抽象工厂模式
*/
interface IAbstractFactory{
public IEgg createEgg();
public IMeat createMeat();
}
class ChickenFactory implements IAbstractFactory{
public IEgg createEgg(){
return new ChickenEggs();
}
public IMeat createMeat(){
return new ChickenMeat();
}
public static void main(String args[]){
//进了鸡店吃鸡蛋,吃鸡肉
IAbstractFactory factory=new ChickenFactory();
IEgg egg=factory.createEgg();
IMeat meat=factory.createMeat();
egg.eatEgg();
meat.eatMeat();
}
}
class DuckFactory implements IAbstractFactory{
public IEgg createEgg(){
return new DuckEggs();
}
public IMeat createMeat(){
return new DuckMeat();
}
}
E:\test>javac sic.java
E:\test>java ChickenFactory
chicken henapple
chicken meat
E:\test>
分享到:
相关推荐
java三种工厂模式文档+三个实例,里面有个word文档是学习文档 然后配套有三个项目学习
三种工厂模式的样例代码,让你轻松理解工厂模式
三种工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)的代码示例。工厂模式的详细解说参见:http://blog.csdn.net/H28496/article/details/44258601
iOS三种工厂模式详解(demo + 图 +分析)
工厂模式完美实现代码,使用java,加入自己的思考方式
简单工厂模式、抽象工厂模式、工厂方法模式、饿汉单例模式、懒汉单例模式
下面小编就为大家带来一篇深入理解java三种工厂模式。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Java三种设计模式的简介,简单工厂模式,工厂模式,装饰模式,职责链模式
工厂模式在开发中用处是很多的,这里包含了工厂模式的三种写法,有兴趣可以来看看。
设计模式 抽象工厂模式 三层架构 设计模式 抽象工厂模式 三层架构 设计模式 抽象工厂模式 三层架构 设计模式 抽象工厂模式 三层架构 设计模式 抽象工厂模式 三层架构 要您一个资源分,也算是对我的尊重,谢谢下载。
c#三层工厂模式(带数据库) c#三层工厂模式(带数据库) c#三层工厂模式(带数据库)
Headfirst第四章工厂模式,三种工厂模式 简单工厂模式 工厂模式 抽象工厂模式 C++实现 面向对象思想
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:...
常常被这三种设计模式弄的晕头转向的 毫不容易弄的差不多清楚了
NULL 博文链接:https://jacky-dai.iteye.com/blog/2296369
是一个基于工厂模式的三层架构示例项目源码,基于VS2005!
第三方工程模式
工厂模式+三层小范例工厂模式+三层小范例工厂模式+三层小范例工厂模式+三层小范例工厂模式+三层小范例工厂模式+三层小范例工厂模式+三层小范例工厂模式+三层小范例工厂模式+三层小范例工厂模式+三层小范例工厂模式+...
1.创建型模式:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式。 2.结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 4.行为型模式:模板方法模式、命令模式、...