设计模式应用实例之单件模式应用,和简单注入实现形式

上次写了基于MVC模式和Command模式构建系统架构,也做了一个简单的实例。

在把我想写的写完以后,我想通过一个具体的项目来串联大部分的设计模式思想。

今天我想说的是单件模式。

首先简单介绍下单件模式是什么东西,也称Singleton模式,实现单一实例的功能,不具体说了,不了解者看别的介绍概念性文章。

通常,在我做过的项目中,应用Singleton最多的就是做适配器,下面我会介绍如何做适配器。

先介绍通过通过单件模式,实现适配器产生单一实例的应用过程。

在介绍单件模式以前,我想先介绍下,面向服务编程的概念。在我现在的设计思想过程中,我认为,任何一个业务逻辑都是基于服务之上的。

服务是通过接口和实现来实现相互耦合。下面通过我之前开发的一个系统为例,抽象核心思想,来描述如何做适配器。

首先做个解决方案


做一个用户类服务接口

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Model;

namespace IService
{
    public interface IUserService
    {
        Users Load();

        void Insert(User user);

        void Update(User user);

        void Delete(User user);
    }
}

时间: 2024-09-05 03:05:22

设计模式应用实例之单件模式应用,和简单注入实现形式的相关文章

设计模式(二)单件模式Singleton(创建型)

SINGLETON(单件)-对象创建型模式        几乎所有面向对象的程序中,总有一些类的对象需要是唯一的,例如,通过数据库句柄到数据库的连接是独占的.您希望在应用程序中共享数据库句柄,因为在保持连接打开或关闭时,它是一种开销.再如大家最经常用的IM,如QQ,在同一台电脑,一个帐号只能有唯一的登录. 1. 问题 怎样确保一个特殊类的实例是独一无二的(它是这个类的唯一实例),并且这个实例易于被访问呢? 2. 解决方案 1)全局变量:一个全局变量使得一个对象可以被访问,但它不能防止你实例化多个

设计模式-PHP实现单件模式的几种方式

单件模式是我们在开发中经常用到的一种设计模式,利用PHP5面向对象的特性,我们可以很容易的构建单件模式的应用,下面是单件模式在PHP中的几种实现方法: class Stat{     static $instance = NULL;          static function getInstance(){         if(self::$instance == NULL){             self::$instance = new Stat();         }     

.NET简谈设计模式之(单件模式)

我们继续学习设计模式系列文章. 今天要讲的是单件模式,其实单件模式是比较简单的设计模式,在我们日常开发过程中也是经常用到的. 单件模式:单件模式是一种用于确保整个应用程序中只有一个类实例且这个实例所占资源在整个应用程序中是共享时的程序设计方法. 我想如果初学者对一些基本概念能熟练掌握时,其实单件模式是很简单的,就是因为初学者对一些概念还不是很理解,我们先来扫除这些阻挡我们理解的障碍. 大部分的初学者都会搞不清楚"静态对象"与"实例对象"的区别.当然谁都有一个过渡期,

.NET设计模式:单件模式(Singleton Pattern)

概述 Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点.这就提出了一个问题:如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?客户程序在调用某一个类时,它是不会考虑这个类是否只能有一个实例等问题的,所以,这应该是类设计者的责任,而不是类使用者的责任. 从另一个角度来说,Singleton模式其实也是一种职责型模式.因为我们创建了一个对象,这个对象扮演了独一无二的角色,在这个单独的对象实例中,它集中了它所属类的所有权力,同时它也肩负了行使这种权力的职责! 意图

.NET设计模式-单件模式(Singleton Pattern)

单件模式(Singleton Pattern) --.NET设计模式系列之二 Terrylee,2005年12月07日 概述 Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点.这就提出了一个问题:如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?客户程序在调用某一个类时,它是不会考虑这个类是否只能有一个实例等问题的,所以,这应该是类设计者的责任,而不是类使用者的责任. 从另一个角度来说,Singleton模式其实也是一种职责型模式.因为我们创建了一个对象,这

艾伟_转载:.NET设计模式:单件模式(Singleton Pattern)

概述 Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点.这就提出了一个问题:如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?客户程序在调用某一个类时,它是不会考虑这个类是否只能有一个实例等问题的,所以,这应该是类设计者的责任,而不是类使用者的责任. 从另一个角度来说,Singleton模式其实也是一种职责型模式.因为我们创建了一个对象,这个对象扮演了独一无二的角色,在这个单独的对象实例中,它集中了它所属类的所有权力,同时它也肩负了行使这种权力的职责! 意图

php设计模式总结-单件模式

一.单件模式 英文叫做sington.其他语言中有叫做单例模式,其实都是一样的道理.保证只会出现单个实例,所以是单例.翻译成单件,永远只会产生一件,呵呵. 还有翻译成单元素模式.其实关键是看这个英文比较好.英文是sington,统一是使用这个单词. 单件模式的目的我理解如下: 避免重复创建(实例化)对象,已经有现成的实例就用现成的. 减少资源的浪费(因为创建多个实例,浪费内存,完全没必要),单件模式保证了每时每刻引用的都是同一个实例. 为什么同时创建多个实例会引起逻辑上的错误呢? $obj1$o

.NET中的设计模式二:单件模式

设计 单件模式(Singleton)是一个非常简单的模式,这是我第一个理解并且能运用的模式.有时候模式的复杂程度并不在于本身,而是由于他的应用目的.最初的时候面对一个模式经常充满了困惑,一个简单的调用为什么要搞的如此复杂?为什么要建立这么多类,只是为了打开一个文件. 通常说来学习一个模式是一个接受.认可.领会的过程.接受:了解模式的结构,了解实例的意义:认可:认可该模式在实际工程中的作用和可行性:领会:将模式应用到开发过程中. 而模式的应用目的说到底无非是为了降低模块之间在时间和空间上的耦合程度

设计模式之单件模式(Singleton Pattern )

设计 单件模式 Singleton Pattern Singleton 模式,它包含在创造性模式系列中. 创造性模式指示如何以及何时创建对象.Singleton 模式可以保证一个类有且只有一个实例,并提供一个访问它的全局访问点.在程序设计过程中,有很多情况需要确保一个类只能有一个实例.例如,系统中只能有一个窗口管理器.一个打印假脱机,或者一个数据引擎的访问点.PC机中可能有几个串口,但只能有一个COM1实例. 其结构如下: 我们可以定义一个Spooler类,实现Singleton 模式 Publ