`
lichen0921
  • 浏览: 82791 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

单例模式 工厂模式

    博客分类:
  • Java
阅读更多

 

单例
package com.enorth.user;

/**
 * @author 李晨
 * @version 创建时间:Jun 29, 2009 9:10:02 AM
 */
public class Singleton {
	private static Singleton singleton = null;

	private Singleton() {
	}

	public static Singleton getInstance() {
		if (singleton == null) {
			// 防止线程安全
			synchronized (Singleton.class) {
				if (singleton == null) {
					singleton = new Singleton();
					return singleton;
				}
			}
		}
		return singleton;
	}
}
  
 
简单工厂
// 产品接口                     
public interface Product {         
        
        public void getName();         
        
}         
        
// 具体产品A         
public class ProductA implements Product {         
        
        public void getName() {         
                System.out.println("    I am ProductA    ");         
        }         
        
}         
        
// 具体产品B         
public class ProductB implements Product {         
        
        public void getName() {         
                System.out.println("    I am ProductB    ");         
        }         
        
}         
        
// 工厂类         
public class ProductCreator {         
        
        public Product createProduct(String type) {         
                if (" A ".equals(type)) {         
                        return new ProductA();         
                }         
                if (" B ".equals(type)) {         
                        return new ProductB();         
                } else        
                        return null;         
        }         
        
        public static void main(String[] args) {         
                ProductCreator creator = new ProductCreator();         
                creator.createProduct(" A ").getName();         
                creator.createProduct(" B ").getName();         
        }         
}   
 抽象工厂
//    产品 Plant接口                     
public interface Plant {         
}         
        
// 具体产品PlantA,PlantB         
public class PlantA implements Plant {         
        
        public PlantA() {         
                System.out.println(" create PlantA ! ");         
        }         
        
        public void doSomething() {         
                System.out.println("    PlantA do something    ");         
        }         
}         
        
public class PlantB implements Plant {         
        public PlantB() {         
                System.out.println(" create PlantB ! ");         
        }         
        
        public void doSomething() {         
                System.out.println("    PlantB do something    ");         
        }         
}         
        
// 产品 Fruit接口         
public interface Fruit {         
}         
        
// 具体产品FruitA,FruitB         
public class FruitA implements Fruit {         
        public FruitA() {         
                System.out.println(" create FruitA ! ");         
        }         
        
        public void doSomething() {         
                System.out.println("    FruitA do something    ");         
        }         
}         
        
public class FruitB implements Fruit {         
        public FruitB() {         
                System.out.println(" create FruitB ! ");         
        }         
        
        public void doSomething() {         
                System.out.println("    FruitB do something    ");         
        }         
}         
        
// 抽象工厂方法         
public interface AbstractFactory {         
        public Plant createPlant();         
        
        public Fruit createFruit();         
}         
        
// 具体工厂方法         
public class FactoryA implements AbstractFactory {         
        public Plant createPlant() {         
                return new PlantA();         
        }         
        
        public Fruit createFruit() {         
                return new FruitA();         
        }         
}         
        
public class FactoryB implements AbstractFactory {         
        public Plant createPlant() {         
                return new PlantB();         
        }         
        
        public Fruit createFruit() {         
                return new FruitB();         
        }         
}    
 
分享到:
评论

相关推荐

    设计模式之单例模式(结合工厂模式)

    将单例模式与工厂模式结合,可以创建一个单例工厂,这个工厂类负责生成单例对象。这样做有两个主要好处:一是隐藏了单例的实现细节,使得代码更加整洁,降低了耦合度;二是可以通过工厂方法扩展新的实现,如果将来...

    设计模式单例模式和工厂模式综合应用

    "设计模式单例模式和工厂模式综合应用"的主题聚焦于两种常用的设计模式:单例模式和工厂模式,并探讨它们如何协同工作来实现高效、灵活的代码结构。这个主题尤其适用于Java编程语言,因为Java的面向对象特性使得设计...

    单例模式 工厂模式DEMO

    1、单例模式 结论:单例模式可以把数据封装在对象里,操作对象;而静态类是把数据封装在类里,操作类。单例模式中,数据只有在对象存在的时候才能操作;而静态类中,数据可以直接通过静态类点出来操作。 2、工厂模式...

    OOP单例模式和工厂模式

    ### OOP中的单例模式与工厂模式 #### 单例模式和工厂模式概述 在面向对象编程(OOP)领域,设计模式被视为一种通用的解决方案,用于解决在软件设计过程中遇到的常见问题。这些模式提供了经过验证的设计策略,有助...

    单例模式和工厂模式代码

    单例模式和工厂模式是两种常见的软件设计模式,在面向对象编程中扮演着重要的角色。它们都是为了解决特定的问题而提出的解决方案,但有着不同的应用场景和设计思路。 **单例模式** 是一种限制类实例化次数的模式,...

    php单例模式和工厂模式

    虽然标题提到的是单例模式,但工厂模式也值得一提。工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,当创建对象时,不会直接实例化对象,而是通过一个专门的工厂类来创建。工厂类可以...

    工厂模式与单例模式

    在软件设计模式中,工厂模式和单例模式是两种非常基础且重要的模式,它们都是用于解决对象创建问题,但有着不同的设计理念和应用场景。本篇文章将深入探讨这两种模式,并结合具体的代码示例`myFactoryDemo`进行讲解...

    单例模式详解 1. 什么是单例模式? 1.1 单例模式的核心要素 1.2 为什么需要单例模式? 2. 单例模式的实现方式 2.1 饿汉式(静态常量) 2.2 饿汉式(静态代码块) 2.3 懒汉式(线程

    单例模式详解 1. 什么是单例模式? 1.1 单例模式的核心要素 1.2 为什么需要单例模式? 2. 单例模式的实现方式 2.1 饿汉式(静态常量) 2.2 饿汉式(静态代码块) 2.3 懒汉式(线程不安全) 2.4 懒汉式(线程安全,...

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

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

    设计模式之单例模式和工厂模式

    细心整合和单例模式和工厂模式的几种模型,懒汉式,饿汉式,如何并发操作模式,等都有详细讲解

    java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂

    MVC模式使得用户界面与数据逻辑分离,单例模式保证关键资源的唯一访问点,代理模式在访问对象前后增加额外的功能,工厂模式将对象创建与使用分离,简单工厂模式为对象创建提供一个简单便捷的接口。通过这些模式,...

    简单工厂,代理模式,单例模式demo

    在众多设计模式中,“简单工厂”、“代理模式”和“单例模式”是三种常见的设计模式,它们各自有着明确的使用场景和设计目标。 首先,“简单工厂模式”是一种创建型模式,它定义了一个创建对象的接口,但让决定创建...

    java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂 第二部分

    本篇将深入探讨标题中提及的几种设计模式:Model-View-Controller(MVC)模式、单例模式、代理模式以及工厂模式,尤其是简单工厂模式。 **1. Model-View-Controller (MVC) 模式** MVC模式是一种架构模式,它将应用...

    javaweb项目+设计模式(单例模式,工厂模式,动态代理,适配器)

    本项目涵盖了四种常见的设计模式:单例模式、工厂模式、动态代理和适配器模式。下面将详细阐述这四种设计模式的概念、作用以及在实际项目中的应用。 **1. 单例模式** 单例模式是一种限制类实例化次数为一个的设计...

    单例模式详解~~单例模式详解~~

    在软件工程中,单例模式常用于控制资源的共享,比如数据库连接池、线程池或者日志系统等,这些资源通常需要全局唯一且高效地访问。 在Java中,实现单例模式有多种方式,但最常见的问题是线程安全问题。例如,上述...

    设计模式之单例模式源码demo

    单例模式是软件设计模式中的经典模式之一,其主要目的是控制类的实例化过程,确保在应用...在设计模式中,单例模式不仅限于上述实现,还可以与其他模式结合使用,如工厂模式、装饰器模式等,以达到更灵活、高效的设计。

    设计模式C++学习之单例模式(Singleton)

    单例模式是软件设计模式中的一种,它保证一个类只有一个实例,并提供一个全局访问点。在C++中,实现单例模式有多种方法,我们将会深入探讨这一模式的原理、优缺点以及如何在实际编程中应用。 单例模式的核心在于...

    23钟设计模式之单例模式

    单例模式是一种常用的设计模式,它的核心思想是在整个应用程序中,一个类只能有一个实例存在。单例模式常用于控制资源的共享,例如数据库连接池、日志服务等。单例模式有多种实现方式,常见的包括懒汉式、饿汉式以及...

    单例模式详解

    单例模式详解 单例模式是 Java 设计模式中的一种常见模式,旨在保证整个应用中只有一个类的实例存在。单例模式分为三种:懒汉式单例、饿汉式单例、登记式单例。下面对单例模式的特点、实现方式和应用场景进行详细...

Global site tag (gtag.js) - Google Analytics