注册本站  论坛  繁體中文

电脑技巧
手机 | MP3 | MP4 | 显卡 | 主板 | 显示器 | 光存储 | 笔记本 | 网络设备 | 移动存储 | 数码相机
键鼠 | CPU | 音箱 | GPS | 电视 | 服务器 | 投影机 | 机箱电源 | 品牌电脑 | 办公打印 |
| 网站首页 | Cisco | Windows | Linux | Java | Dotnet | Oracle | 网页设计 | 平面设计 | 安全 | 软件应用 | 电脑维修 | 办公维修 |
您现在的位置: 电脑技巧 >> Dotnet >> VB.NET >> Dotnet正文

设计模式与VB .net代码 外观模式,合成模式

文章来源:中国IT实验室搜集整理 作者:佚名 更新时间:2008-6-28 20:39:58 【 】 【加入收藏

        外观模式

        就是将一大堆功能,合并成一个接口提供给客户代码.

        比如一个Window类,用户就不需要手工编写很多创建窗体的代码. 这就是外观模式.

        其实,很多模式我们在编写代码时就在使用,只不过没这么称呼而已.也提醒我,看模式书籍时,尽量不要太关注模式的名称.

        例如,我们可以将错误处理封装在一个类中:

        Public Class ErrorManage
        Public Shared Sub RecordError( _
        ByVal errorMsg As String, _
        ByVal errType As ErrorType, _
        Optional ByVal isWriteNote As Boolean = False)
        '...

        '...
        End Sub

        Enum ErrorType
        warning
        wrong
        suggest
        End Enum
        End Class

        客户代码:

         ErrorManage.RecordError("some description...", ErrorManage.ErrorType.suggest, False)

        这就是外观模式,晕,Perry觉得有点儿唬人.

        以前,函数可以看做外观模式的一种.但在VB. Net中是用类来组织代码,因此,我们一般说这个类使用了外观模式,其实是指这个类是一个服务类,提供一些静态成员给客户代码使用而已.而这些静态成员,将客户端需要许多步骤才能完成的工作简化了.

        此外观和程序的外观完全没关系,这个模式不是教我们做UI的.

        Perry觉得唬人,不是对”外观模式”的轻视,而是自己先被”模式”吓到了.模式可以让我们在编写程序时,更清晰,更有把握,交流起来也明确.

        合成模式

        简单来说,一个类中能包含自身的集合,就叫合成模式.常见的如目录下有目录和文件...

        树是合成模式的其中的一种抽象.

        合成模式有一个前提:

        其中的被包含对象要和包含对象有一个公共接口.

        一棵简单的树:

         Public Interface ComponentInterface
        Function Parent() As ComponentInterface
        Function Children() As ComponentInterface()
        Function IsHaeChildren() As Boolean
        '....
        End Interface
        Public Class Components
        Implements ComponentInterface
        Public Function Children() As ComponentInterface() Implements ComponentInterface.Children
        End Function
        Public Function IsHaeChildren() As Boolean Implements ComponentInterface.IsHaeChildren
        End Function
        Public Function Parent() As ComponentInterface Implements ComponentInterface.Parent
        End Function
        End Class
        Public Class Component
        Implements ComponentInterface
        Public Function Children() As ComponentInterface() Implements ComponentInterface.Children
        '...
        End Function
        Public Function IsHaeChildren() As Boolean Implements ComponentInterface.IsHaeChildren
        Return False
        End Function
        Public Function Parent() As ComponentInterface Implements ComponentInterface.Parent
        '...
        End Function
        End Class

        开始Perry始终不明白,为什么要一个公共接口?

        那是因为,客户代码在操作时需要有一致性,需要遍历.这些没有公共接口就不能实现.

        比如:目录可以复制,剪切...,也可以打开下一级,回到上一级.

        它也规范了合成模式是同接口对象的合成,而不同对象聚合在一起?可以用前面的外观模式来解释,或者后面还有对应的模式呢?

        树只是合成模式的一种简单表示,复杂些的有图.如何用合成模式表示图,或者说如何遍历图,需要看<<数据结构>>.

        合成模式典型应用在结构(物料BOM),流程性质管理(过程节点).

  • 上一篇Dotnet:

  • 下一篇Dotnet: 没有了
  • 最 新 热 门
     web.config配置文件中的 元素
     为网站添加业务层
     用SqlDataSource实现DataList嵌套DataList
     Visual Studio 2003插件的编写
     千条DOS命令收藏
     IIS 常见问题
     IIS需要的最小NTFS权限
     优化 .NET的性能
     设计模式与VB .net代码 外观模式,合成模式
     VB.net中介者模式
    最 新 推 荐
     设计模式与VB .net代码 外观模式,合成模式
     VB.net中介者模式
     使用VB.net实现sql数据库的备份与恢复代码
     解决CSV字段数据带有双引号的问题
     vb.net中用GetPrivateProfileString访问INI…
     vb实现IP设置
     VB Shell调用后 等待程序运行结束
     VB.net 学习设计模式(中介者模式)
     限制文本框的输入(只输入数字)
     VB.Net处理MySQL中二进制问题
    相 关 文 章

    VB.net 学习设计模式(中介者模式)
    观察者模式 The Observer Pattern
    运用设计模式构建通用数据库访问类
    LINQ框架设计指南
    .NET企业级应用架构设计之技术选型
    ASP.NET可交互式位图窗体设计(下)
    ASP.NET应用程序的三层设计模型
    ASP.NET系统用户权限设计与实现
    .NET反射、委托技术与设计模式
    .Net中的设计模式——Decorator模式

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告

     

    Copyright 2006-2008 pcjx.com All Rights Reserved
    电脑技巧 版权所有 粤ICP备06059145号 地图
    本网站所有内容未经许可不得转载或做其他使用