现在的位置: 首页 > 综合 > 正文

设计模式之结构型

2017年08月05日 ⁄ 综合 ⁄ 共 1009字 ⁄ 字号 评论关闭

     接下来进行的比赛就是死亡之组——结构型模式,到底谁能够晋级呢?这个我们现在还无法预测,那就赶紧看这场精彩的比赛吧!

    首先有一个疑问,为什么分为结构型呢?她们都从程序的结构上降低了模块之间的耦合。

    接下来一一介绍各位美丽的小姐:

    【设配器小姐】为别人的沟通提供方便,当一个完全不懂英语的人需要和美国人交流时,我们就需要有翻译最为中间媒介,来达到双方的交流,而翻译员所起到的作用就是适配器模式的作用。Adapter就是将一个类的接口转换成客户希望的另一个接口。既然她有这个功能,那么我们应该什么时候用呢?当两个类都不太容易修改的时候考虑使用适配器模式适配,这也是一种无奈之举。

            

    【桥接小姐】将抽象和具体的实现分离开,而具体的比如手机的例子,将手机品牌和手机软件分开,手机品牌这个抽象对象拥有部分实现接口的对象,和手机软件进行桥接,这就桥接上了。桥接模式,我们可以扩充手机软件和和手机品牌,增加了变化。

        

    【组合小姐】描述部分-整体的关系,比如我们有总公司,在下面有上海分公司、深圳分公司等,这就是一种组合关系。这些基本对象还可以组合成更复杂的组合关系,而作为用户不用关心是在总公司还是分公司,只要一致对待就好。

    【装饰小姐】可以动态添加一些额外的职责,装饰小姐让我们的子类更加灵活,可以添加一些类来装饰我们的程序,使程序更加灵活。

    【外观小姐】为子系统建立一个统一的接口,就像有些人去投资,但又不了解投资的风险和收益,这怎办呢?基金就为想投资的人提供一个接口,大家只要投资基金就可以了,而不需要具体去了解股票、国债和房地产等的具体风险。外观就是给大家一个平台,直接在平台上操作,而不需要了解内部复杂的过程。

    【享元小姐】提供一个共享的超类或接口,通过这个接口可以了解世界。就像我们了解微生物一样,刚开始无法看见微生物,就无法知道一些食物腐败、疾病的机理,自从发现了显微镜之后,我们就可以通过显微镜来观察微生物也就能够知道现实世界中现象的机理。

    【代理小姐】不需要自己做事,让代理去做就好。我们现实世界中的律师就是一种代理,不要当事人直接进行交涉,而通过律师(代理)来处理事务。

    总结:这几个模式都是从结构上来改变程序,但目的一致都是为了降低耦合度。同时都有自己的特点,对于组合小姐的关系我还是理解的不太清楚,虽然知道这样可以实现,但具体应用还是有很大的困难,还需要深入研究。

抱歉!评论已关闭.