• 简单工厂、抽象工厂


    //IUserInfoDal userInfoDal = StaticDalFactory.GetUserInfoDal();//简单工厂模式比上面的好一些
    简单工厂 //IUserInfoDal userInfoDal = StaticDalFactory.GetUserInfoDal();//简单工厂模式比上面的好一些
    抽象工厂 //IUserInfoDal userInfoDal = StaticAbstractFactory.GetUserInfoDal();抽象工厂比简单工厂更高级一点

    namespace My.OA.DalFactory
    {
    //职责:建立工厂模式,一个DAL入口:和上下文的概念一样,拿到上下文就可以操作数据库中的表,拿到这个工厂也就能操作他封装的所有实例

    //工厂:一种思想,一个实例,通过工厂被广泛调用,这就是一种面向对象的思维,代码重用和高维护性

    //简单工厂:生成方式还是需要修改代码的
    public class DalFactory
    {
    //一种依赖抽象编程
    public static IUserInfoDal GetUserInfoDal()
    {
    return new UserInfoDal();
    }

    }
    //抽象工厂:生产方式不修改代码(改配置),需要更规范的书写命名规范
    public class StaticAbstractFactory
    {
    public static IUserInfoDal GetUserInfoDal()
    {
    //dal实例由配置设置
    string DalAssemblyName = System.Configuration.ConfigurationManager.AppSettings["DalAssemblyName"];
    //需要更规范的书写命名规范
    return Assembly.Load(DalAssemblyName).CreateInstance(DalAssemblyName + ".UserInfoDal") as UserInfoDal;//反射是抽象工厂的实现方式之一,只是一种思想
    }

    }
    }

    <appSettings>
    <!--抽象工厂创建数据库访问层实例所在 程序集名称-->
    <add key="DalAssemblyName" value="My.OA.DAL" />
    </appSettings>
    <system.web>

  • 相关阅读:
    步入大公司一年及三十而立的一些思考
    let和const
    简明学习webpack
    npm&&yarn和package.json
    基于jQuery.i18n.properties插件实现前端页面国际化
    Sequence Model
    系统性整理项目:第一篇(续篇)-osm存入PostgreSQL+PostGIS并构建路网表结构
    系统性整理项目:第一篇(环境+数据)
    window下源码编译mmcv-full==1.2.1
    多边形平滑算法-ChaikinSmoothing
  • 原文地址:https://www.cnblogs.com/it-xcn/p/5746316.html
Copyright © 2020-2023  润新知