创建型模式特立独行的两位大侠

 

既是大侠,本事当然了得。还记得拔一撮猴毛,吹出万千小猴子,这就是我们第一位大侠(原型模式)的本事。另一位,虽有真假猴王让人分辨不清,当真的永远都是真的,这就是单例模式。

原型模式

      1.复制一个(不是新建)已经存在的实例(继承Clone)来返回新的实例;

      2.多用于创建复制或者耗时的实例,此时比从头创建更高效。

 

UML:

 

小Q截图-20131129100535

 

原型:

   1:  public class Prototype implements Cloneable {
   2:      ...
   3:      ...
   4:      public Object clone(){
   5:          try {
   6:              return super.clone();
   7:          } catch (Exception e) {
   8:              e.printStackTrace();
   9:              return null;
  10:          }
  11:      }
  12:  }

代码:

   1:      public static void main(String[] args) {
   2:          Prototype prototype=new ConcretePrototype("prototype");
   3:          Prototype prototype2=(Prototype)prototype.clone();
   4:          System.out.println(prototype.getName());
   5:          System.out.println(prototype2.getName());
   6:          
   7:  //        prototype
   8:  //        prototype
   9:      }

 

单例模式

        保证一个类仅有一个实例,并提供一个访问他的全局变量

单例:

   1:  public class Singleton {
   2:      /**
   3:       * 静态的自身变量
   4:       */
   5:      private static Singleton singleton;
   6:     
   7:      /**
   8:       * 构造函数私有化,防止外界直接创建
   9:       */
  10:      private Singleton(){
  11:          
  12:      }
  13:      
  14:      public static Singleton getSingleton(){
  15:          if (singleton==null) {
  16:              singleton=new Singleton();
  17:          }
  18:          return singleton;
  19:      }
  20:  }

 

代码:

   1:      public static void main(String[] args) {
   2:          Singleton singleton=Singleton.getSingleton();
   3:          Singleton singleton2=Singleton.getSingleton();
   4:          
   5:          System.out.println(singleton);
   6:          System.out.println(singleton2);
   7:  //        Singleton.Singleton@9e5c73
   8:  //        Singleton.Singleton@9e5c73
   9:      }
posted @   但,我知道  阅读(586)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示