美文网首页
设计模式分享之Concept

设计模式分享之Concept

作者: 不可诗意之刀老大 | 来源:发表于2018-09-17 09:09 被阅读0次

    设计模式是什么?

    在软件开发中,经过验证的,用于解决在特定环境下、重复出现的、特定问题的解决方案。

    模式的定义是相当简单的,但每一个词都有不同的意义。

    “……解决方案”

    归根结底,设计模式就是一些解决方案(解决办法,解决问题的方式或方法)。

    “……特定问题……”

    通常一个设计模式仅仅解决某个或某些特定的问题,并不能包治百病。它只是解决“特定问题”的解决方案。

    “……重复出现……”

    只有解决重复出现的特定问题,才显得有意义。而当问题再次出现时,可以复用这些解决方案。

    “……特定环境……”

    任何问题的出现是有场景的,不能脱离环境去讨论问题的解决办法。不同的环境,相同的问题,解决办法不一定一样。

    “……经过验证的……”

    每个人都可以总结出在特定环境下、重复出现的、特定问题的的解决方案,但并不都算上是设计模式。而应该有足够的应用来验证,并且得到大家的认可和公认。

    “在软件开发中……”

    各行各业都存在设计模式,接下来要讨论的内容,便是软件开发中的设计模式。

    起源

    模式起源与建筑领域,哈佛大学的建筑学博士克里斯托弗.亚历山大,与其团队,用了约20年的时间,对住宅和周边环境进行了大量的调查研究,发现人们对舒适住宅和城市环境存在一些共同的认同规律,将它们归纳成253个模式。


    建筑模式语言(上下)

    诞生

    GoF将模式的概念引入软件工程领域,著有《Design Patterns: Elements of Reusable Object-Oriented Software》(设计模式:可复用面向对象软件的基础),这标志着软件模式的诞生。

    设计模式的分类

    设计模式分类
    • 创建型:创建对象的模式,抽象实例化的过程。
    • 结构型:讨论类和对象的结构。
    • 行为型:关注的是对象的行为,用来解决对象之间的联系问题。

    六大原则

    总原则
    Open Close Principle(开闭原则)
    对拓展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果。

    • Single Responsibility Principle(单一职责)
    • Liskov Substitution Principle(里氏替换)
    • Dependence Inversion Principle(依赖倒转)
    • Interface Segregation Principle(接口隔离)
    • Demeter Principle(迪米特法则,最少知道原则)
    • Composite Reuse Principle(合成复用)

    相关文章

      网友评论

          本文标题:设计模式分享之Concept

          本文链接:https://www.haomeiwen.com/subject/lxefnftx.html