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)状态模式

      

      

  • 相关阅读:
    android 模拟器报 no CPU/ABI system image for target
    Android SDK Manager 更新代理配置
    IIS日志文件清理
    Android开发环境搭建
    Android 应用开发特色
    Android 系统架构
    Npm安装以及express框架的使用
    javascript中的回调函数(callback)
    Windows环境下的NodeJS+NPM+Bower安装配置
    JavaScriptSerializer 序列化json 时间格式
  • 原文地址:https://www.cnblogs.com/xiaobang/p/3111966.html
Copyright © 2011-2022 走看看