[浪子学编程][MS Enterprise Library]ObjectBuilder之创建策略祥解(一)
2006-04-28 16:13
369 查看
ObjectBuilder之创建策略祥解(一)
-Written by 浪子 [walkingboy.cnblogs.com]
前言:[/b][/b]
ObjectBuilder已经默认制定了很多创建策略,可能看到这么多策略加上整个地方架构满天飞,反而搞不清楚如何去应用ObjectBuilder创建我们需要的对象了。研究它的原理只是为了更好的发挥它的功效,本系列将详细解析ObjectBuilder中的所有默认创建策略的原理以及应用:
1[/b]、类型映射策略[/b](TypeMappingStrategy)[/b]:
[/b][/b]
上文 讲过,策略的具体行为都是由他们各自所对应的方针来决定的。类型映射策略也有其映射方针:
public interface ITypeMappingPolicy : IBuilderPolicy
具体方针(TypeMappingPolicy):
public class TypeMappingPolicy : ITypeMappingPolicy
创建策略中的类型映射应用:[/b]
public override object BuildUp(IBuilderContext context, Type t, object existing, string id)
应用举例:[/b][/b]
class Program
//抽象基类
public abstract class MyAbstractClass
//具体实现类
public class MyConcreteClass : MyAbstractClass
我们可以看到结果会输出:
MyConcreteClass
可见我们通过指定方针就可以轻松的将抽象类或者接口类映射成为具体的实例类,而且这种转换是安全的
//检测是否能正常转换这两个类型
Guard.TypeIsAssignableFromType(t, result.Type, t);
-Written by 浪子 [walkingboy.cnblogs.com]
前言:[/b][/b]
ObjectBuilder已经默认制定了很多创建策略,可能看到这么多策略加上整个地方架构满天飞,反而搞不清楚如何去应用ObjectBuilder创建我们需要的对象了。研究它的原理只是为了更好的发挥它的功效,本系列将详细解析ObjectBuilder中的所有默认创建策略的原理以及应用:
1[/b]、类型映射策略[/b](TypeMappingStrategy)[/b]:
[/b][/b]
上文 讲过,策略的具体行为都是由他们各自所对应的方针来决定的。类型映射策略也有其映射方针:
public interface ITypeMappingPolicy : IBuilderPolicy
具体方针(TypeMappingPolicy):
public class TypeMappingPolicy : ITypeMappingPolicy
创建策略中的类型映射应用:[/b]
public override object BuildUp(IBuilderContext context, Type t, object existing, string id)
应用举例:[/b][/b]
class Program
//抽象基类
public abstract class MyAbstractClass
//具体实现类
public class MyConcreteClass : MyAbstractClass
我们可以看到结果会输出:
MyConcreteClass
可见我们通过指定方针就可以轻松的将抽象类或者接口类映射成为具体的实例类,而且这种转换是安全的
//检测是否能正常转换这两个类型
Guard.TypeIsAssignableFromType(t, result.Type, t);
相关文章推荐
- [浪子学编程][MS Enterprise Library]ObjectBuilder之创建策略祥解(二)
- [浪子学编程][MS Enterprise Library]ObjectBuilder之创建策略祥解(三)
- [浪子学编程][MS Enterprise Library]ObjectBuilder之设计模式(一):策略模式
- [浪子学编程][MS Enterprise Library]ObjectBuilder之设计模式(二):责任链模式
- [浪子学编程][MS Enterprise Library]ObjectBuilder内功心法之中国特色
- GTK+-3.0编程 (五) GtkBuilder用于快速创建界面,它读取一个xml文件
- [EnterpriseLibrary]Microsoft.Practices.ObjectBuilder来创建Singleton对象
- 赞!VC++编程创建远程线程式调用CALL_VirtualAllocEx_WriteProcessMemory_CreateRemoteThread_WaitForSingleObject
- MS 的IOC容器(ObjectBuilder)?
- MS 的IOC容器(ObjectBuilder)?
- MS 的IOC容器(ObjectBuilder)?
- object-c 2.0的属性访问器和相应的编程策略
- 关于spring.net的面向切面编程 (Aspect Oriented Programming with Spring.NET)-使用工厂创建代理(Using the ProxyFactoryObject to create AOP proxies)
- 使用MS图表控件创建基本报表
- python创建只读属性对象的方法(ReadOnlyObject)
- UNIX环境高级编程学习之第十一章线程-线程的创建、退出、等待、取消、分离
- [导入]Ms Ajax Lib-> Object 类型扩展
- JS DOM编程艺术——动态创建标记—— JS学习笔记2015-7-13(第83天)
- LINQ to XML 编程基础 创建 增删改查