`
zhuzhiguosnail
  • 浏览: 110400 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

GoF设计模式详解

阅读更多
可以这么说:GoF设计模式是程序员真正掌握面向对象核心思想的必修课。虽然你可能已经通过了SUN的很多令人炫目的技术认证,但是如果你没有学习掌握GoF设计模式,只能说明你还是一个技工。

这里只是想用简单的办法来解释常用的设计模式。

通常将设计模式分为 创建模式,结构模式,行为模式3种类型。
创建模式
一些系统在创建对象的时候需要动态的决定怎样创建对象、创建哪些对象、以及如何组合,表示这些对象。创建模式描述了怎样构造和封装这些动态的决定。

创建模式又分类的创建模式和对象的创建模式。

类的创建模式:类的创建模式使用继承关系,把类的创建延迟到子类,从而封装了客户端将得到哪些具体类的信息,并隐藏了这些类的实例是如何被创建的和放在一起的。

对象的创建模式:对象的创建模式则把对象的创建过程动态的委派给另一个对象,从而动态的决定客户端将得到哪些具体类的实例,以及这些类实例如何被创建和组合在一起。

结构模式


行为模式



Singleton Pattern

1. 饿汉式单例类
public class Singleton {

  private Singleton(){}

  //在自己内部定义自己一个实例,是不是很奇怪?
  //注意这是private 只供内部调用

  private static Singleton instance = new Singleton();

  //这里提供了一个供外部访问本class的静态方法,可以直接访问  
  public static Singleton getInstance() {
    return instance;   
   }
}

2. 懒汉式单例类

public class Singleton {

  private static Singleton instance = null;

  public static synchronized Singleton getInstance() {

  //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次   
  //使用时生成实例,提高了效率!
  if (instance==null)
    instance=new Singleton();
  return instance;   }

}


第二中形式是lazy initialization,也就是说第一次调用时初始Singleton,以后就不用再生成了。


注意到lazy initialization形式中的synchronized,这个synchronized很重要,如果没有synchronized,那么使用getInstance()是有可能得到多个Singleton实例。
一般来说第一种比较安全。


Factory Method Pattern

Bridge Pattern

Command Pattern
0
0
分享到:
评论

相关推荐

    GOF设计模式详解

    **GOF设计模式详解** GOF设计模式,全称Gang of Four设计模式,是由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位著名计算机科学家合著的《设计模式:可复用面向对象软件的基础》一书中的核心内容...

    GOF设计模式(中英文双语)

    **GOF设计模式详解** GOF(Gang of Four)设计模式,又称为GoF设计模式,是由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位作者在1994年出版的《设计模式:可复用面向对象软件的基础》一书中提出...

    GOF设计模式C#加强版

    #### 二、GOF设计模式详解 设计模式按照其目的和应用场景,大致可以分为三类:创建型模式、结构型模式和行为型模式。下面主要介绍创建型模式和结构型模式。 ##### 1. 创建型模式 创建型模式关注的是对象的创建...

    GOF设计模式 经典之作

    二、23种GOF设计模式详解 1. 创建型模式(Creational Patterns):这类模式主要关注对象的创建过程,包括单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式...

    Gof设计模式

    《Gof设计模式详解》 在软件工程领域,设计模式是一种被广泛接受并反复使用的解决方案,它针对在特定上下文中经常出现的问题提供了一种最佳实践。Gof设计模式,全称为GoF(Gang of Four)设计模式,是由Erich Gamma...

    GOF设计模式

    ### GOF设计模式详解 #### 一、设计模式的重要性及背景 设计模式是软件工程领域的一个重要概念,尤其在面向对象编程中占有举足轻重的地位。正如标题所述,《GOF设计模式》被誉为设计模式领域的开山之作,是每一位...

    GOF-设计模式-Design Patterns-英文原版-高清-有目录-有页码

    ### GOF设计模式详解 #### 一、设计模式概述 **设计模式**(Design Patterns)是软件工程中的一个重要概念,它是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。本章节将从多个角度对设计模式...

    gof设计模式

    ### GOF设计模式详解 #### 引言:何为设计模式? 设计模式是软件工程领域的一个重要概念,它提供了一套解决常见问题的有效方法。在《设计模式:可复用面向对象软件的基础》这本书中,四位作者(Erich Gamma、...

    GoF 23种设计模式的详解与应用

    详细介绍GoF设计模式以及应用... 创建模式:设计模式之Factory,设计模式之Prototype(原型),设计模式之Builder,设计模式之Singleton(单态). 结构模式:设计模式之Facade(外观),设计模式之Proxy(代理),设计模式之...

    GoF 23种设计模式解析(附C++实现源码)

    然而学习设计模式的过程却是痛苦的,从 阅读设计模式的圣经——GoF 的《设计模式:可复用面向对象软件的基础》时的枯燥、苦闷、 茫无头绪,到有一天突然有一种顿悟;自己去实现 GoF 的 23 中模式时候的知其然不知其所 ...

    GOF-23种设计模式详解.docx

    ### GOF-23种设计模式详解 #### 设计模式的起源与发展 设计模式这一概念最初并非源于软件设计领域,而是起始于建筑学。1977年,克里斯托夫·亚历山大在其著作《建筑模式语言:城镇、建筑、构造》中首次将“模式”...

    java设计模式的应用

    #### 二、GoF设计模式详解 ##### 2.1 创建型模式 - **工厂方法模式**:这是一种用于创建对象的接口,但让子类决定实例化哪一个类。该模式让一个类的实例化延迟到其子类。使用工厂模式可以简化对象的创建过程,使得...

    java设计模式详解合集

    Java设计模式详解合集是一份宝贵的资源,包含了丰富的面向对象设计原则和多种设计模式的深入讲解。这份资料旨在帮助开发者提升软件设计能力,遵循良好的编程实践,提高代码的可读性、可维护性和复用性。以下是其中...

    java23种设计模式详解+源码(绝对详解)

    在Java编程中,有23种经典的GoF(Gang of Four)设计模式,它们被分为三大类:创建型、结构型和行为型。本资源集合了这些模式的详细解释与源码分析,旨在帮助开发者深入理解和应用设计模式。 1. 创建型模式...

    设计模式----Java

    GoF设计模式详解 ##### A. 创建型模式 **2.1 工厂模式** **定义:** 工厂模式是一种常用的创建型设计模式,它提供了创建对象的统一接口,而将实例创建的细节隐藏起来。这种模式允许在不指定具体类的情况下创建...

    GoF- Design Patterns

    ### GoF设计模式详解 #### 一、工厂模式(Factory) 工厂模式是一种常见的创建型设计模式,它提供了一个创建对象的接口,但允许子类决定实例化哪一个类。工厂方法让一个类的实例化延迟到其子类。简单来说,工厂...

    设计模式详解,设计模式

    "设计模式详解"的压缩包可能包含了关于这些模式的详细讲解、示例代码和实战案例,对于初学者和经验丰富的开发者来说都是宝贵的资源。通过深入学习和实践,你可以提升自己的设计能力,编写出更具弹性和可扩展性的软件...

    Java-GoF-DesignPattern:在Android Studio中学习Java Gof设计模式

    **Java GoF 设计模式详解** 在编程领域,设计模式是一种通用可重用的解决方案,用于在特定情况下解决软件设计中的常见问题。GoF(Gang of Four)设计模式,由Erich Gamma、Richard Helm、Ralph Johnson和John ...

Global site tag (gtag.js) - Google Analytics