zoukankan      html  css  js  c++  java
  • 工厂模式

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using ProCommon;
    using System.Web.Caching;
    using System.Web;
    using System.Configuration;
    using System.Reflection;

    namespace ProFactory
    {

    /// <summary>
    ///依赖注入提供者
    ///使用反射机制实现
    /// </summary>
    public sealed class DependencyInjector
    {
    /// <summary>
    /// 取得数据访问层对象
    /// 首先检查缓存中是否存在,如果不存在,则利用反射机制返回对象
    /// </summary>
    /// <param name="className">数据访问类名称</param>
    /// <returns>数据访问层对象</returns>
    public static object GetDALObject(string className)
    {
    //取得访问层对象,首先检查缓存,不存在则在配置文件中读取
    //缓存依赖项为:Web.config;
    object dal = CacheClass.GetFromCache("DAL");
    if (dal == null)
    {
    CacheDependency denpency = new CacheDependency(HttpContext.Current.Server.MapPath("Web.Config"));
    dal = ConfigurationManager.AppSettings["DAL"];
    CacheClass.SaveToCache("DAL", dal, denpency);
    }
    //取得数据访问层对象
    string dalName = dal.ToString();
    string fullClassName = dalName + "." + className;
    object dalObject = CacheClass.GetFromCache(className);
    if (dalObject == null)
    {
    CacheDependency fileDependency = new CacheDependency(HttpContext.Current.Server.MapPath("Web.config"));
    dalObject = Assembly.Load(dalName).CreateInstance(fullClassName);
    CacheClass.SaveToCache(className, dalObject, fileDependency);
    }
    return dalObject;
    }
    /// <summary>
    /// 取得业务逻辑层对象
    /// 首先检查缓存中是否存在,如果不存在,则利用反射机制返回对象
    /// </summary>
    /// <param name="className"></param>
    /// <returns></returns>
    public static object GetBLLObject(string className)
    {
    object bll = CacheClass.GetFromCache("BLL");
    if (bll == null)
    {
    CacheDependency dependency = new CacheDependency(HttpContext.Current.Server.MapPath("Web.config"));
    bll = ConfigurationManager.AppSettings["BLL"];
    CacheClass.SaveToCache("BLL", bll, dependency);
    }
    string bllName = bll.ToString();
    string fullClassName = bllName + "." + className;
    object fileBll = CacheClass.GetFromCache(className);
    if (fileBll == null)
    {
    CacheDependency dependency = new CacheDependency(HttpContext.Current.Server.MapPath("Web.config"));
    fileBll = Assembly.Load(bllName).CreateInstance(fullClassName);
    CacheClass.SaveToCache(className, fileBll, dependency);
    }
    return fileBll;
    }
    }
    }

  • 相关阅读:
    zhanwei
    站位
    Web前端开发:SQL Jsp小项目(二)------添加修改
    Web前端开发:SQL Jsp小项目(一)
    JDBC(用Eclipse操作数据库Oracle)的基础操作集合
    Thread多线程stopSleep顺序问题
    IO流详解之代码详解
    IO流详解(半教材类型)
    用JQuery编写textarea,input,checkbox,select
    Java编写ArrayBasic制作一个简单的酒店管理系统
  • 原文地址:https://www.cnblogs.com/wzq806341010/p/2846795.html
Copyright © 2011-2022 走看看