`
huqi
  • 浏览: 97046 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

23种经典设计模式的java实现_1_抽象工厂模式

阅读更多

抽象工厂模式的适用:
一个系统要独立于它的产品的创建、组合和表示时。
一个系统要由多个产品系列中的一个来配置时。
当你要强调一系列相关的产品对象的设计以便进行联合使用时。
当你提供一个产品类库,而只想显示它们的接口而不是实现时。

示例说明:
有三种抽象的产品:墙、门、房间。
对这三种抽象产品有两组具体实现:卧室和起居室。
那么,我们的抽象工厂就可以根据客户的指令(即调用参数)去生产卧室和起居室的房间(墙和门包括在房间里)。

 

测试启动类:

package com.alex.designpattern.abstractfactory;

/** *//**
 * 抽象工厂模式
 * <p>
 * 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
 * 
 * 
@author <a href="mailto:huqiyes@gmail.com">huqi</a>
 * 
@serialData 2007
 
*/

public class Test ...{

    
public static void main(String[] args) throws Exception ...{
        
// ----- Create Living Room
        Room myLivingRoom = AbstractRoomFactory.createRoom("LivingRoom");
        AbstractRoomFactory.showRoom(myLivingRoom);

        
// ----- Create Bed Room
        Room myBedRoom = AbstractRoomFactory.createRoom("BedRoom");
        AbstractRoomFactory.showRoom(myBedRoom);
    }

}

抽象产品:

package com.alex.designpattern.abstractfactory;

/** *//**
 * The Abstract Class of Wall
 
*/

public interface Wall ...{
    
public String getName();
}


package com.alex.designpattern.abstractfactory;

/** *//**
 * The Abstract Class of Door
 
*/

public interface Door ...{
    
public String getName();
}


package com.alex.designpattern.abstractfactory;

/** *//**
 * The Abstract Class of Room
 
*/

public interface Room ...{

    
public Wall getWall();

    
public Door getDoor();
}

实际产品_1

package com.alex.designpattern.abstractfactory;

/** *//**
 * A concrete Room - Bed Room
 
*/

public class BedRoom implements Room ...{
    
public BedRoom() ...{
        System.out.println(
"Initiated a bedroom.");
    }


    
public Door getDoor() ...{
        
return new BedRoomDoor();
    }


    
public Wall getWall() ...{
        
return new BedRoomWall();
    }

}


package com.alex.designpattern.abstractfactory;

/** *//**
 * A concrete Door for Bed Room
 
*/

public class BedRoomDoor implements Door ...{
    
private String doorName;

    
public BedRoomDoor() ...{
        doorName 
= "BedRoomDoor";
    }


    
public String getName() ...{
        
return doorName;
    }

}


package com.alex.designpattern.abstractfactory;

/** *//**
 * A concrete Wall for Bed Room
 
*/

public class BedRoomWall implements Wall ...{
    
private String wallName;

    
public BedRoomWall() ...{
        wallName 
= "BedRoomWall";
    }


    
public String getName() ...{
        
return wallName;
    }

}

实际产品_2

package com.alex.designpattern.abstractfactory;

/** *//**
 * A concrete Room - Living Room
 
*/

public class LivingRoom implements Room ...{
    
public LivingRoom() ...{
        System.out.println(
"Initiated a livingroom.");
    }


    
public Door getDoor() ...{
        
return new LivingRoomDoor();
    }


    
public Wall getWall() ...{
        
return new LivingRoomWall();
    }

}


package com.alex.designpattern.abstractfactory;

/** *//**
 * A concrete Door for Living Room
 
*/

public class LivingRoomDoor implements Door ...{
    
private String doorName;

    
public LivingRoomDoor() ...{
        doorName 
= "LivingRoomDoor";
    }


    
public String getName() ...{
        
return doorName;
    }

}


package com.alex.designpattern.abstractfactory;

/** *//**
 * A concrete Wall for Living Room
 
*/

public class LivingRoomWall implements Wall ...{
    
private String wallName;
分享到:
评论

相关推荐

    Java之23种设计模式解析

    “%5B尚硅谷%5D_宋红康_Java+之23种设计模式解析.pdf”这份资料详细讲解了每种模式的概念、实现方式、优缺点以及实际应用场景,是深入学习和掌握Java设计模式的好助手。通过阅读和实践,开发者将能够更熟练地运用...

    设计模式JAVA版_刘伟.zip

    《设计模式JAVA版_刘伟》是一本专为Java程序员准备的经典书籍,旨在帮助初学者和有经验的开发者深入理解并熟练运用设计模式这一开发技术。设计模式是软件工程中的重要概念,它代表了在特定场景下解决问题的最佳实践...

    Java23种设计模式06抽象工厂模式.pdf

    ### Java23种设计模式之抽象工厂模式 #### 模式动机 在探索设计模式的领域里,**抽象工厂模式**是一种重要的模式,它解决了一个关键问题:如何在一个系统中创建一系列相关或相互依赖的对象,而无需指定这些对象的...

    23种设计模式的Java实现

    以下是23种经典设计模式的概述及其在Java中的实现要点: 1. **单例模式(Singleton)**:确保一个类只有一个实例,并提供全局访问点。在Java中,可以使用枚举、双重检查锁定(DCL)或静态内部类等方式实现。 2. **...

    基于Java实现的23种设计模式Demo,抽象工厂模式、建造模式、工厂方法模式、原型模式、单例模式、外观模式、适配器模式等

    基于Java实现的23种设计模式Demo,抽象工厂模式、建造模式、工厂方法模式、原型模式、单例模式、外观模式、适配器模式等 Java设计模式共有23种,分别为:抽象工厂模式、建造模式、工厂方法模式、原型模式、单例模式...

    23三种设计模式java实现

    以上就是23种设计模式的概述及其在Java中的实现方式。这些模式不仅有助于提高代码的可读性和可维护性,还能促进团队间的有效沟通,因为它们提供了共同的语言和解决问题的通用框架。在实际开发中,根据具体情况灵活...

    23种设计模式的JAVA实现

    本资料提供了23种设计模式的Java实现,是学习和理解设计模式的宝贵资源。 1. **单例模式(Singleton)**:保证一个类只有一个实例,并提供全局访问点。在Java中,可以通过双重检查锁定、静态内部类和枚举等方式实现...

    java设计模式-抽象工厂模式

    下面是一个简单的Java抽象工厂模式的示例: ```java // 抽象工厂接口 public interface WidgetFactory { Button createButton(); Label createLabel(); } // Windows具体工厂 public class WinWidgetFactory ...

    三种工厂模式java实现

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

    JAVA设计模式之抽象工厂模式

    抽象工厂模式是设计模式中的一种创建型模式,它提供了一种创建对象集合的接口,而无需指定具体类。这种模式允许客户端使用一个通用接口来创建一组相关或相互依赖的对象,而无需了解它们的具体实现。在Java中,抽象...

    java抽象工厂模式实现

    抽象工厂模式是设计模式中的一种,它属于创建型模式,主要解决的是当系统需要创建一系列相关或相互依赖的对象时,而这些对象的类可能在运行时未知,这时可以通过抽象工厂模式来提供一个创建对象的接口,使得系统可以...

    设计模式-抽象工厂模式javademo

    抽象工厂模式是软件设计模式中的一种创建型模式,它提供了一种创建对象族(一组具有相互依赖关系的对象)的方法,而无需指定它们的具体类。在Java编程中,抽象工厂模式通常用于实现跨平台或者跨框架的接口,使得系统...

    23种java设计模式.pdf

    JAVA 设计模式可以分为三种:创建模式、结构模式和行为模式。 1. 创建模式 创建模式是指在创建对象时使用的模式,包括 Factory(工厂模式)、Singleton(单例模式)、Builder(建造者模式)、Prototype(原型模式...

    Java 工厂模式 抽象工厂 工厂方法模式

    **抽象工厂模式**:抽象工厂模式是工厂模式的一种扩展,关注于创建相关或依赖对象的家族,而无需指定它们的具体类。它提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。在Java中,抽象工厂模式...

    JAVA设计模式之抽象工厂

    至于给出的文件名"javaapplication1",可能是实现抽象工厂模式的一个示例程序。由于没有具体的内容,我们无法深入讨论其细节,但可以推测这个应用可能包含了抽象工厂、具体工厂和相关产品的实现。要了解更多关于这个...

    工厂模式代码实现_Java

    工厂模式是一种常用的软件设计模式,它是创建型设计模式的一种,主要解决对象创建的问题。在Java中,工厂模式通过提供一个接口或者抽象类来创建对象,而不是直接实例化具体类,这样使得代码更加灵活,易于扩展。 ...

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

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

    Java设计模式-抽象工厂

    抽象工厂模式是设计模式中的一种结构型模式,它提供了一个创建对象族的接口,但允许子类决定实例化哪一个类。这个模式使代码能够独立于实际的产品实现,增强了代码的可扩展性和灵活性。 ### **1. 模式概念** 抽象...

    23种设计模式的实现(Java 版),全部的23种的设计模式(Java 版)

    这个压缩包包含了全部23种经典的GoF(Gang of Four)设计模式的Java实现,对于学习和理解设计模式有着极大的帮助。 1. **单例模式**:保证一个类只有一个实例,并提供一个全局访问点。Java中的实现通常使用双重检查...

    java常用23中设计模式

    创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:...

Global site tag (gtag.js) - Google Analytics