zoukankan      html  css  js  c++  java
  • 设计模式之概要

    什么时候使用设计模式

      对于很多人来说,设计模式是一个很高大上的东西。当然,恰当的使用设计模式确实能达到事半功倍的效果,能帮助我们解决一些复杂的业务场景,减少耦合,让我们的逻辑更清晰,代码更美观,更具有维护性。

      但是,什么时候该用设计模式?是不是只要符合设计模式的场景就要用设计模式呢?当然不是,使用设计模式一般要注重两点:一,这个地方的代码反复修改,事不过三,第三次修改时就该引入设计模式了,减少后面的维护成本;二,如果在刚开发的就有明确的业务需求支撑,即业务变化点超过3个,这时可以考虑立即引入相应的设计模式。所有设计模式的使用都应遵循这个规则,以后不再累述。

       其实使用设计模式主要也是为了让程序满足程序设计的两大原则:1.单一职责,2.开放闭合原则。这也是为什么有些设计模式看着很相似,但是却分成了多种设计模式的原因,就是因为这些设计模式的设计出发点不同,如果融合到一个设计模式中势必会打破这两个原则。

       从另个角度来看,我们所谓的编程就是将现实世界的东西虚拟化,虚拟成计算机可以识别的程序,而设计模式其实也是现实世界中处理不同场景下问题的方式的反应。

    设计模式的本质

      设计模式是软件设计中常见问题的通用可重用的解决方案,与语言无关。

    • 本质还是面向对象。封装,继承,多态。
    • 只要是变化点,关注点高的,都可以考虑封装起来。封装成类,封装成方法等。
    • 只要是需要重用代码的,都可以通过继承来实现。现在jd8有默认方法,有的时候也可以解决。
    • 只要想做抽象、解耦的时候都可以使用多态。
    • 设计模式只是让人以更快的捷径了解部分面向对象,也减少了经典场景的使用面向对象思考的时间。

    设计原则

      第一个设计原则:找出应用中可能需要变化之处,把它们独立出来,不和那些不需要变化的部分混合在一起。为了分开变化和不变化的部分,需要准备两组类

      第二个设计原则:针对接口编程,不针对实现编程。针对接口编程的真正意思是针对超类型编程。

      第三个设计原则:多用组合,少用继承。用行为类组合,而不是行为的继承,更有弹性。

    好处 

    • 减少重复代码
    • 解耦,让功能更健壮,互相之间不影响。
    • 可扩展性更好,修改的时候关注点更少。

    设计模式分类

      创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

      结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

      行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

    设计模式分类

    简单工程模式

    职责链模式

    代理模式

    装饰者模式

    策略模式

    观察者模式

  • 相关阅读:
    ini_set /ini_get函数功能-----PHP
    【转】那个什么都懂的家伙
    word 2007为不同页插入不同页眉页脚
    August 26th 2017 Week 34th Saturday
    【2017-11-08】Linux与openCV:opencv版本查看及库文件位置等
    August 25th 2017 Week 34th Friday
    August 24th 2017 Week 34th Thursday
    August 23rd 2017 Week 34th Wednesday
    August 22nd 2017 Week 34th Tuesday
    August 21st 2017 Week 34th Monday
  • 原文地址:https://www.cnblogs.com/htyj/p/12844705.html
Copyright © 2011-2022 走看看