zoukankan      html  css  js  c++  java
  • 设计模式 学习笔记(7) 抽象工厂模式、状态模式

    (15)抽象工厂模式

      抽象工厂模式(Abstract Factory)提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

      反射技术,.net引用命名空间using System.Reflection,可以帮助我们客服抽象工厂模式的先天不足。

    Assembly.load("程序集名称").CreateInstance("命名空间.类名称")
    //常规的写法
    IUser result=new SqlserverUser();
    //反射的写法
    using System.Reflection;
    
    IUser result=(IUser)Assembly.Load(“当前'程序集'的名称”)。createInstance("当前'命名空间'名称.要实例化的类名");

      利用反射技术,将程序由编译时转为运行时。由于'CreateInstance("抽象工厂模式.SqlserverUser")'中的字符串是可以写成变量的,可以由这个变量具体值由SQLServer还是Access来决定。

     1 using System.Reflection;       //引入反射
     2 class DataAccess
     3 {
     4     private static readonly string AssemblyName="程序集名称";
     5     private static readonly string db="数据集名称";
     6    
     7      public static IUser CreateUser()
     8     {
     9         string className=AssemblyName+"."+db+"User";
    10         return (IUser)Assembly.Load(AssemblyName).CreateInstance(className);
    11     }
    12     
    13     public static IDepartment CreateDepartment()
    14     {
    15         string className=AssemblyName+"."+db+"Department";
    16         return (IDepartment)Assembly.Load(AssemblyName).CreateInstance(className);
    17     }
    18 }
    View Code

    (16)状态模式

      

      

  • 相关阅读:
    php中&符号什么意思
    lucene 笔记
    yslow详细解释
    sqlserver中如何实现时间按月,日,小时分组查询
    用Lucene.net对数据库建立索引及搜索2
    lucene.net索引文件存储简析
    C #中的几个线程同步对象方法 1
    lucene 全文检索简介
    判断jquery对象是否可见
    Lucene.net多字段(Fields)、多索引目录(IndexSearcher)搜索
  • 原文地址:https://www.cnblogs.com/xiaobang/p/3111966.html
Copyright © 2011-2022 走看看