首先想说的是设计模式共有23种,分三大类:
1、创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
2、结构型模式:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
3、行为型模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
具体介绍可参见:http://www.360doc.com/content/13/0329/09/10504424_274614664.shtml
本文主要讲解工厂模式和单实例模式:
工厂模式:
工厂模式,顾名思义,就是类似现实中的工厂。根据用户的需求(即传入的参数)决定实例化一个对应的类,而不是由用户构建。
实现代码:
//两种不同型号的电脑 public class ComputerA implements ICOm{ } public class ComputerB implements ICOm{ } //接口 public interface ICOm { } //电脑生产工厂 public class ComputerCreator { //根据用户的需求生产对应的产品 public static ICOm creat(int type){ if(type == 1){ return new ComputerA(); } else if(type == 2){ return new ComputerB(); } } public static void main(String[] args) { ICOm comA = ComputerCreator.creat(1); ICOm comB = ComputerCreator.creat(2); } }
工厂模式的优点是为系统结构提供了灵活的动态扩展机制,方便维护,且求该市无需对客户端改动。缺点是修改时工厂类和产品类都要修改。
单实例模式:
就是有且仅有一个实例化的对象,构造方法私有化,但是提供了一个可以访问内部全局的引用。
实现代码:
public class Technique { private Technique(){}; private static Technique tec = null; public Technique gettec(){ if(tec == null){ tec = new Technique(); } return tec; } }
单实例模式的优点是由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。缺点是破坏了类的封装性。
单实例模式要额外考虑线程安全性:
public class Technique { private Technique(){}; private static Technique tec = null; if (tec == null) { //保证线程安全性 synchronized (tec) { if (tec == null) { tec = new Technique(); } } } }
相关推荐
桥接模式的核心思想是将抽象部分与实现部分分离,使它们可以独立变化。在绘图软件中,抽象部分可能是各种图形(如圆形、矩形),而实现部分则包含填充颜色、线条样式等具体细节。通过桥接模式,可以独立地修改图形类...
### 设计模式——工厂模式与单例模式 #### 一、引言 设计模式是软件工程领域中的一个重要概念,它代表了在特定情况下解决常见问题的最佳实践。在本篇文章中,我们将深入探讨两种广泛使用的软件设计模式:工厂模式...
在软件设计模式中,工厂模式是一种非常常见的创建型模式,它提供了一种创建对象的最佳方式。C#中的工厂模式分为简单工厂、抽象工厂和单例模式三种,每一种都有其特定的应用场景和优势。 1. **简单工厂模式**: ...
本篇文章将详细讲解代理模式、单例模式和工厂模式这三种设计模式,并通过Java代码实例进行演示。 1. **代理模式**: 代理模式是一种结构型设计模式,它为一个对象提供一个替身或代理,以控制对该对象的访问。代理...
工厂方法让类的实例化推迟到子类中进行,实现了抽象与实现的解耦。这种方式提高了系统的可扩展性,当需要新增产品时,只需新增一个具体的工厂类即可,而不需要修改原有代码。但是,这也意味着需要为每种产品创建一个...
3. Qt工厂模式工程 4. Qt工厂模式例程 5. Qt工厂模式例子 6. 简单工厂模式 部分源码实例: // 奔驰工厂 class BenzFactory : public AFactory { public: ICar* CreateCar() { return new BenzCar(); } }; // ...
在软件工程中,设计模式是解决常见问题的模板或最佳实践。工厂模式是其中最常用的一种,它提供了创建对象的最佳方式。在这个压缩包中,包含了三种工厂模式的C++实现:简单工厂模式、工厂方法模式以及抽象工厂模式。...
在软件设计模式中,工厂模式是一种非常基础且实用的创建型设计模式...通过工厂模式,我们能够将对象的创建与对象的使用分离,使得代码结构清晰,易于维护和扩展。理解并熟练运用工厂模式是提升软件设计质量的关键一步。
在工厂模式中,我们创建对象时不直接实例化具体类,而是通过一个接口或者抽象类来间接创建。这种模式的核心在于将对象的创建过程封装起来,使得代码更加灵活,易于扩展和维护。以下是关于Java工厂模式的详细解释,...
工厂设计模式是面向对象编程中的一种经典设计模式,它的主要目的是为了解耦对象的创建与使用,使得系统在不关心具体实现的情况下能够灵活地创建所需的对象。在这个名为"工厂设计模式简单实例"的资料中,我们可以期待...
在这个“工厂方法模式java实例demo”中,我们可以期待看到如何在实际代码中应用这一模式。 在刘伟老师的《设计模式》一书中,他可能通过一个具体的示例解释了工厂方法模式的概念。这个例子可能涉及创建不同类型的...
本资源“一例读懂设计模式-单例模式、简单工厂模式.zip”旨在帮助初学者通过实例深入理解这两种重要设计模式:单例模式和简单工厂模式。以下是关于这两个模式的详细讲解。 1. **单例模式**: 单例模式是一种限制类...
"设计模式单例模式和工厂模式综合应用"的主题聚焦于两种常用的设计模式:单例模式和工厂模式,并探讨它们如何协同工作来实现高效、灵活的代码结构。这个主题尤其适用于Java编程语言,因为Java的面向对象特性使得设计...
它是简单工厂模式的一种扩展,它将产品实例化的责任委托给子类。在手机加工厂的场景中,每个手机品牌工厂都可以看作是工厂方法模式的一个实现,它们各自负责特定型号手机的组装和测试,例如iPhone工厂负责制造iPhone...
2. **工厂方法模式**:定义一个创建对象的接口,让子类决定实例化哪一个类,工厂方法让类的实例化推迟到子类。 3. **抽象工厂模式**:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。 在...
这里我们将重点讨论简单工厂模式,这也是标题所提及的实例。 简单工厂模式通常包含三个主要角色: 1. **产品接口(Product)**:定义了产品的公共接口,所有具体产品都应实现这个接口,以便于工厂类能够返回一个...
工厂模式的核心思想是将对象的创建与使用分离,它提供了一个创建对象的接口,但并不直接实例化具体的对象,而是由一个专门的工厂类来负责。这样做的好处在于,当需要更换或添加新的对象类型时,只需要修改工厂类,而...
这个压缩包中包含的实例源码涵盖了多种设计模式,包括工厂模式、动态代理和责任链模式。让我们深入探讨这些设计模式的核心概念、用途以及它们在实际编程中的应用。 1. 工厂模式:这是最基础的设计模式之一,属于...
3. **工厂类**:负责创建具体产品对象,根据输入条件判断并返回相应的产品实例,它是简单工厂模式的核心。 在实际应用中,工厂类通常包含一个静态方法,如`createProduct()`,这个方法根据传入的参数或者条件来决定...
在描述中提到的文章《工厂模式的实践与解析》中,作者fanweiwei分享了他对工厂模式的理解和应用实例。文章可能涵盖了工厂模式的基本概念、分类以及如何在实际编程中运用。通常,工厂模式有三种主要类型:简单工厂...