设计模式: 单列设计模式 、模块方法设计模式

一、单列设计模式

    1、设计模式:解决某一类问题的最行之有效的方法。
    2、Java中有23中基本设计模式。
    3、单列设计模式:一个类在内存中只有一个对象。

  为了达到单列设计模式,如下考虑:
    1、 为了避免其他程序过多建立该类对象,所以要先禁止其他程序建立该类对象。
    2、 但是为了有一个该类对象可用,所以只有通过自己建立一个本类对象。
    3、 为了让其他程序使用该对象,所以要对外提一些访问方式。

  有了上述思考,于是有了如下步骤:
    1、 将其构造私有化 (使用 private 修饰构造函数)
    2、 在类中 new 一个本类对象。
    3、 提供一个 static 方法能调用到上步建立的对象。

  代码示例如下:
  class Single //饿汉式 (饿汉式在开发时更常用)
  {
    private Single(){}
    private static Single s = new Single();
    public static Single getInstans()
    {
      return s;
    }
  }

  class Single //懒汉式
  {

    private static Single s;
    private Single(){}

    public static Single getInstance()
    {
      if(s==null)
        s = new Single();
      return s;
    }
  }

  class Test
  {
    public static void main(String []args)
    {
      Single ss = Single.getInstans();
    }
  }

四、模板方法设计模式

    在定义功能时,部分功能时确定的, 部分功能时不确定的, 而确定功能在使用不确定的功能,
    我们就可以将不缺定的功能暴露出去,由子类去完成。
    而确定部分就使用 final封装起来。

时间: 2024-10-13 09:10:45

设计模式: 单列设计模式 、模块方法设计模式的相关文章

【创建型设计模式】-简单工厂方法设计模式

单词:Creator [kri?et?] 创造者,创作者;  Product [?prɑd?kt]  产品; 结果; 乘积; 作品; factory [?f?kt?ri] 工厂,制造厂; <古>代理店; 简单工厂方法设计模式的设计图纸 Creator 是一个工厂类, 根据"四人帮"的软件设计模式的记号,图中的右半部分的类叫做产品类,由接口 Product 与 具体的实现类产品类ConcreteProduct 组成. 产品类实际上代表被创建的类结构,而Creator 类 是简

设计模式Java之工厂方法。

1,工厂方法: 使用一个工厂的方法来创建产品. 1 package WHP; 2 //产品依赖于抽象 3 public interface IRunable { 4 public void Run(); 5 } 1 package WHP; 2 //具体实现 3 public class Car implements IRunable { 4 public void Run(){ 5 System.out.println("Car running."); 6 } 7 } 1 packa

二、模版方法设计模式

模板方法设计模式: 解决的问题:当功能内部一部分实现是确定,一部分实现是不确定的.这时可以把不确定的部分暴露出去,让子类去实现. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 abstract class GetTime{     public final void getTime(){ //此功能如果不需要复写,可加final限定         long start

代码片--实现一个简单的模版方法设计模式(获取一段程序运行的时间)

package com.dreamy.day03; /** * @author dreamy * 需求:获取一段程序运行的时间 * 原理:获取程序开始和结束的时间并相减即可. * 获取时间:System.currentTimeMillis() * * * 当代码完成优化后,就可以解决这类问题 * 这种方式叫做模版方法设计模式. * * 什么是模版方法呢? * 在定义功能时,功能的一部分是确定的,但是有一部分是不确定的,而确定的部分在使用的不确定的部分, * 那么这时就将不确定的部分暴露出去,由该

设计模式小计——23种设计模式3

责任链模式Chain of Responsibility 使多个对象都有机会处理请求,从而避免请求的发送者和接受者间的耦合关系,并沿着这条链传递请求,直到有对象处理它为止 责任链模式关键是建立链接关系,在链中决定谁来处理请求 //抽象处理者 public abstract class Handle{ private Handle nextHandle;//链的下一个节点 public final Response handleMessage(Request request){ Response

设计模式小计——23种设计模式1

单例模式Singleton Pattern 确保类只有一个实例,而且自行实例化并向整个系统提供这个实例 public class Singleton{ private static final Singleton singleton = new Singleton(); private Singleton(){} public static Singleton getSingleton(){ return singleton; } } 节省内存开支,减少性能开销,应用启动产生单例对象,永久驻留内

设计模式小计——23种设计模式2

模板方法模式Template Method Pattern 定义一个操作的算法的框架,是的子类可以不改变算法结构即可重定义该算法一些特定步骤 public abstract class AbstractClass{//抽象模板类 protected abstract void method1();//算法步骤1 protected abstract void method2();//算法步骤2 public void templateMethod(){//模板方法,定义算法结构 this.met

每天一个设计模式(0):设计模式概述

本系列是基于阅读<Head First 设计模式>而产生的,也算是此书的阅读笔记. 由于目前事情比较多,本系列内容参考了几个大神的博客内容.以后时间充裕了,或对某种模式有了更深入的理解后,会及时更新对应文章. 参考的几个大神的博客主页如下:http://www.cnblogs.com/mengdd/ http://blog.csdn.net/zhangerqing?viewmode=contents 设计模式 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目

关于W3Cschool定义的设计模式--常用的9种设计模式的介绍

一.设计模式 tip:每种设计模式,其实都是为了更高效的,更方便的解决在面对对象编程中所遇到的问题. 什么是设计模式: 是一套经过反复使用.多人知晓的.经过分类的.代码设计经验的总结 为什么使用设计模式: 为了代码的可重用性.让代码更容易被他人理解.保证代码的可靠性.设计模式使代码的编写真正的工程化:设计模式是软件工程的基石脉络,如同大厦的结构. 有哪些设计模式(来自W3Cschool,23种): 构造器模式,模块化模式,暴露模块模式,单例模式,中介者模式,原型模式,命令模式,外观模式,工厂模式