传统抽象工厂(通过反射来创建实例)-》目的为了解耦

//第一步创建一个AbstractFactory类,在这个类里面定义两个静态属性:AssemblyPath ,NameSpace //第二步在工厂类里面写一个静态方法:public static IUserInfoDal CreateUserInfoDal(){}//第三步再写一个方法:private static object CreateInstance(string fullName)通过Assembly反射来创建实例//第四步在web.config文件下配置这两个静态属性:AssemblyPath ,NameSpace
public class AbstractFactory
    {
        private static readonly string AssemblyPath = ConfigurationManager.AppSettings["AssemblyPath"];
        private static readonly string NameSpace = ConfigurationManager.AppSettings["NameSpace"];
        public static IUserInfoDal CreateUserInfoDal()
        {
            string fullName = NameSpace + ".UserInfoDal";
            return CreateInstance(fullName) as IUserInfoDal;
        }

        private static object CreateInstance(string fullName)
        {
            Assembly assembly = Assembly.Load(AssemblyPath);
            return assembly.CreateInstance(fullName);
        }
    }

  

时间: 2024-10-13 00:29:14

传统抽象工厂(通过反射来创建实例)-》目的为了解耦的相关文章

三层架构之抽象工厂加反射----实现数据库转换

项目要求使用SqlServer数据库与Access数据库切换.需求是只要把webconfig中的配置一改就可以实现数据来源在SqlServer与Access之间切换.经过思考,觉得可以用抽象工厂来实现这一功能,后边仔细一想,感觉有点麻烦,后边想到了用反射来实现. 思路是这样的:将数据访问层抽取出来,提取成接口DomeIDAL类库,再不同的数据库建立不同的数据访问层实现接口,如使用SqlServer话就对应有一个SqlServer的数据访问类库项目SqlServerDAL,里面的类对应实现Demo

抽象工厂模式(Abstract Factory)C#实例

抽象工厂模式(Abstract Factory)C#实例 本文出处http://www.dofactory.com/net/abstract-factory-design-pattern 一.场景描述 本实例描述了抽象工厂模式的一个使用场景.在动物世界弱肉强食,食肉动物会吃掉食草动物.这是动物世界的规律,因此在动物世界类中有Runfoodchain(运行食物链)方法.在动物世界里总是有食肉动物和食草动物这两个抽象成员.它们之所以是抽象成员是因为他们不是具体的一种动物.而食草动物与食肉动物的区别在

机房重构 抽象工厂+反射+配置文件

重构机房已经开始三个多星期了,从刚开始的一头雾水,到现在的柳暗花明,由开始的无从下手,到现在感觉犹 如脱胎换骨了般.和两个星期前相比,现在明朗了多了,心情也好了不少. 先给大家看一下这次重构的整体架构图: 在前面一篇博文中对三层(UI.BLL.DAL.Entity)http://blog.csdn.net/zhangzijiejiayou/article/details/38226135做了详细的介绍. 本篇博客着重总结一下在三层的基础上我所做的改进,也就是传说中的七层. 1.Facade层(外

【.NET机房重构】——再看抽象工厂加反射实现登录

纯三层的机房重构终于敲完了,但是还需要加设计模式,这又是一道难题.研究了半天的时间,终于对七层的运行步骤熟悉了一些,也对抽象工厂加反射和配置文件了解的更多了一些,下面就看看我的新认识. 这是七层的包图,说是七层,但是七层并不是严格意义上的七层,只不过在三层的基础上加上了工厂.外观和接口,用到设计模式的地方多了自然就形成了一层,所以就有了现在的七层. 各层代码 界面层 分层之后界面层的功能很简单,不能再有逻辑判断,可以有些简单的是否为空或者是否为数字等. <span style="font-

抽象工厂模式(abstract)创建型模式 c#简单例子

适用于玩家用户数play1.play2....有变化,而行为move.jum无变化时 玩家playone的行为:向左移动和向上跳跃 玩家playtwo的行为:向右移动和向下跳跃 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using

利用反射动态创建实例并调用方法

在.Net 中,程序集(Assembly)中保存了元数据(MetaData)信息,因此就可以通过分析元数据来获取程序集中的内容,比如类,方法,属性等,这大大方便了在运行时去动态创建实例. 主要用途: 动态加载DLL,实现插件机制. 实例化DLL中的类型. 执行后期绑定,访问在运行时创建的类型的方法. 首先,新建一个空白解决方案:DllSolution 向解决方案中添加一个类库:RefDll,这将是需要被动态创建的程序集 重命名默认新建的Class1类:Student,这个类将是需要动态创建的类.

简单工厂、抽象工厂、反射工厂

static void Main(string[] args) { Simple simpleOne = new SimpleOne(); simpleOne.ShowName(); Simple simpleTwo = new SimpleTwo(); simpleTwo.ShowName(); // 创建对象 Simple simple1 = Factory.CreateIntance(SimpleType.SimpleOne); Simple simple2 = Factory.Creat

c# 抽象工厂模式

先来看抽象工厂的大体的结构图 要想明白上面的这幅类图的话,先必须要明确一个概念, 产品族: 在上面的产品列表中呢,有两个产品族,一个是"具体产品A--1"和"具体产品B--1"组成的一个族, 还有一个是"具体产品A--2"和"具体产品B--2"组成的一个族. 产品族就是在不同产品等级结构中,功能相关联的产品组成的家族. 下面就来介绍抽象工厂了(有些内容生涩的话,可以看完 Demo 后回过头来浏览) 下面给出的是抽象工厂的定义:

项目总结——谈谈封装(抽象工厂+反射+缓存机制)

今天想给大家说的也是刚刚结束的项目中遇到的一个优秀的封装,当然也要拿出来给大家分享了. 背景交代,我们的项目是一个BS的项目,基本的架构是工厂模式三层,所以就用到了抽象工厂加反射,今天要给大家讲的也就是这块的东西——使用缓存文件. 背景交代完毕. 一.首先说一下什么是缓存文件? msdn上说: 通常,应用程序可以将那些频繁访问的数据,以及那些需要大量处理时间来创建的数据存储在内存中,从而提高性能.例如,如果应用程序使用复杂的逻辑来处理大量数据,然后再将数据作为用户频繁访问的报表返回,避免在用户每