在《来源于WCF的设计模式:可扩展对象模式》我通过一个简单的例子介绍了基于IExtensibleObject<T>和IExtension<T>这两个接口为核心的“可扩展对象模式”。在那篇文章中,我是通过编程的方式来应用扩展到扩展对象的。其实,如何能够通过配置的方式来定义扩展,这个所谓的“可扩展对象模式”将会发挥更大的威力。[源代码从这里下载]

目录:
一、将XxxBuilder定义在配置中
二、ExtensionConfigurationElement<T>和ExtensionNameTypeElementCollection<T>
三、XxxBuilder的配置
四、RoomFactory

为了给大家对基于配置的扩展有一个初步的印象,我们同样先通过一个具体的例子看看最终实现的效果。同样采用上篇中关于“创建房间”的例子,不过为了真正的展示配置的作为,我们为代表房间构成元素(墙、窗户和门)的类型添加相应的属性。其中Materials属性代表门的材质,Width和Height代表窗户的长和宽,而Color则代表强的颜色。

class Door
   2: {
string Materials { get; set; }
   4: }
   5:  
class Window
   7: {
int Width { get; set; }
int Height { get; set; }
  10: }
  11:  
class Wall
  13: {
public Color Color { get; set; }
  15: }

相关文章:

  • 2021-11-10
  • 2022-02-01
  • 2022-12-23
  • 2021-06-16
  • 2021-07-02
  • 2021-09-01
  • 2021-05-18
  • 2022-03-02
猜你喜欢
  • 2021-07-04
  • 2021-10-18
  • 2021-12-01
  • 2021-12-16
  • 2021-10-20
  • 2021-09-06
相关资源
相似解决方案