`

三种工厂模式

 
阅读更多
一、简单工厂模式
    工厂可以创建同一系列的具体产品,工厂根据具体参数,创建相应的产品
    没有工厂接口,只是一个工厂创建多个具体产品

    例子:一个饭店(工厂)--一个卖饭窗口(产品接口)--炒鸡蛋,炒五花肉(产品,一系列具体种类)
   
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>
分享到:
评论

相关推荐

    设计模式之三种工厂模式

    本篇将详细讲解三种工厂模式:简单工厂模式、工厂方法模式和抽象工厂模式,以及它们在实际开发中的应用。 1. 简单工厂模式(Simple Factory Pattern) 简单工厂模式是工厂模式的最基础形式,通过一个公共的工厂类来...

    三种工厂模式java实现

    工厂模式通常分为三种:简单工厂模式、工厂方法模式和抽象工厂模式。下面我们将详细探讨这三种工厂模式在Java中的实现。 **1. 简单工厂模式** 简单工厂模式是最早期的工厂模式形式,它通过一个静态工厂方法来创建...

    java三种工厂模式文档+三个实例.rar

    以下是关于Java工厂模式的详细解释,以及它所包含的三种主要类型的工厂模式: 1. **简单工厂模式(Simple Factory Pattern)**: - 简单工厂模式是一种静态工厂方法模式,它包含一个静态工厂类,负责创建对象。在...

    三种工厂模式的代码示例

    工厂模式分为三种主要类型:简单工厂模式、工厂方法模式和抽象工厂模式。下面将详细介绍这三种工厂模式及其代码示例。 1. 简单工厂模式: 简单工厂模式通常用于创建一系列相关或相互依赖的对象。它包含一个工厂类...

    iOS三种工厂模式详解(demo + 图 +分析)

    本文将详细介绍iOS中的三种工厂模式:简单工厂模式、工厂方法模式以及抽象工厂模式,并结合具体示例、图解和分析进行阐述。 **1. 简单工厂模式** 简单工厂模式,也称为静态工厂模式,它通过一个公共的静态方法来...

    工厂模式:简单工厂模式、工厂方法模式、抽象工厂模式

    工厂模式分为三种主要类型:简单工厂模式、工厂方法模式和抽象工厂模式。 1. **简单工厂模式** 简单工厂模式是最简单的工厂模式实现,它提供一个静态方法或者类来创建对象,这个类通常被称为“工厂”。用户只需要...

    工厂模式的三种写法

    在这个压缩包中,我们可能会看到三种不同的工厂模式实现:简单工厂模式、工厂方法模式和抽象工厂模式。 1. **简单工厂模式**: 简单工厂模式是最直观的工厂模式实现,它通常包含一个工厂类,负责根据传入的参数或...

    C# 工厂模式开发示例,详细展示三种工厂模式

    工厂模式(Factory Pattern)是一种创建型设计模式,它提供了一种创建对象的接口,而不是通过具体类来实例化对象。工厂模式可以将对象的创建过程封装起来,使代码更具有灵活性和可扩展性。 工厂模式有几种常见的...

    设计模式之一 3种工厂模式解析源码

    工厂模式分为三种主要类型:简单工厂模式、工厂方法模式和抽象工厂模式。 1. **简单工厂模式**: 简单工厂模式是最基础的形式,它通过一个中心工厂类来创建对象。这个中心工厂类知道如何构建所有可能的对象,并...

    简单工厂模式、工厂模式、抽象工厂模式案例(C++实现)

    在这个压缩包中,包含了三种工厂模式的C++实现:简单工厂模式、工厂方法模式以及抽象工厂模式。让我们一一探讨这些模式。 1. 简单工厂模式: 简单工厂模式是一种静态工厂方法,它提供一个公共的工厂类来创建对象。...

    工厂模式源代码

    通常,工厂模式有三种主要类型:简单工厂模式、工厂方法模式和抽象工厂模式。 1. **简单工厂模式**:这是最直观的形式,包含一个静态工厂方法,根据传入的参数决定返回哪个类的实例。这种模式简单易用,但不支持...

    简单工厂模式,工厂方法模式,抽象工厂模式

    本文将深入探讨三种工厂模式:简单工厂模式、工厂方法模式以及抽象工厂模式,并结合源码分析其应用场景和优缺点。 1. 简单工厂模式 简单工厂模式(Simple Factory Pattern)是一种静态工厂方法,它通过一个公共的...

    三种工厂设计模式和两种单例模式

    在本文中,我们将深入探讨三种工厂设计模式——简单工厂模式、抽象工厂模式和工厂方法模式,以及两种单例模式——饿汉单例模式和懒汉单例模式。这些模式都是面向对象设计中的重要组成部分,对于理解和构建可维护、可...

    设计模式-工厂模式 Java源码

    在Java编程语言中,工厂模式通常分为简单工厂模式、工厂方法模式和抽象工厂模式三种类型。这些模式都是围绕着一个中心思想:将对象的实例化过程封装起来,使代码更加灵活且易于维护。 1. **简单工厂模式**: 简单...

    java设计模式之三大工厂模式

    在Java编程领域,设计模式是一种解决常见问题的模板或...在阅读给定的博客文章《java设计模式之三大工厂模式》时,可以期待作者详细解析每种模式的结构、优缺点以及使用示例,帮助读者更好地理解和应用这些设计模式。

    深入了解工厂模式&工厂方法&抽象工厂

    工厂模式分为三种主要形态:简单工厂模式、工厂方法模式和抽象工厂模式。 1. 简单工厂模式:也称为静态工厂方法模式,它通过一个静态方法来创建对象。在这个例子中,`FruitGardener` 类就是简单工厂,它根据输入的...

    二十三种设计模式通俗理解

    ### 二十三种设计模式通俗理解 #### 1. FACTORY (工厂模式) 工厂模式是一种常用的软件设计模式,它的核心思想在于将实例化的责任交给一个专门的类——工厂类。这样做的好处是用户无需了解创建对象的具体过程,只...

    Java中工厂模式案例

    工厂模式分为三种主要类型:简单工厂模式、工厂方法模式和抽象工厂模式。 **1. 简单工厂模式(Simple Factory)** 简单工厂模式中,有一个中心工厂类负责创建对象。这个工厂类通常由一个静态方法构成,根据传入的...

    三种设计模式(简单工厂_工厂方法_抽象工厂)

    今天我们将深入探讨三种主要的设计模式:简单工厂、工厂方法和抽象工厂。 ### 简单工厂模式 简单工厂模式是一种创建型设计模式,它提供了一个静态方法来创建对象,而无需暴露创建逻辑。这个静态方法根据输入参数来...

Global site tag (gtag.js) - Google Analytics