GoF设计模式

xiaoxiao2022-06-12  25

可以这么说:GoF设计模式是程序员真正掌握面向对象核心思想的必修课。虽然你可能已经通过了SUN的很多令人炫目的技术认证,但是如果你没有学习掌握GoF设计模式,只能说明你还是一个技工。 这里只是想用简单的办法来解释常用的设计模式。 通常将设计模式分为 创建模式,结构模式,行为模式3种类型。 [b]创建模式[/b] 一些系统在创建对象的时候需要动态的决定怎样创建对象、创建哪些对象、以及如何组合,表示这些对象。创建模式描述了怎样构造和封装这些动态的决定。 创建模式又分类的创建模式和对象的创建模式。 类的创建模式:类的创建模式使用继承关系,把类的创建延迟到子类,从而封装了客户端将得到哪些具体类的信息,并隐藏了这些类的实例是如何被创建的和放在一起的。 对象的创建模式:对象的创建模式则把对象的创建过程动态的委派给另一个对象,从而动态的决定客户端将得到哪些具体类的实例,以及这些类实例如何被创建和组合在一起。 [b]结构模式[/b] [b]行为模式[/b] [b]Singleton Pattern[/b] 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实例。 一般来说第一种比较安全。 [b]Factory Method Pattern[/b] [b]Bridge Pattern[/b] [b]Command Pattern[/b] 相关资源:《Gof设计模式》中文版PDF
转载请注明原文地址: https://www.6miu.com/read-4933381.html

最新回复(0)