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

    一、模式

      模式描述的是重复发生问题的解决方案。设计模式是面向对象设计领域的葵花宝典。(无招八式)

           设计模式组成的核心有:

    • 名称

      名称是设计模式的代号,用来标识设计模式,同时也隐含了模式的问题、设计方案、效果等信息。
    • 问题

      问题即时模式的应用场景,问题是病,模式就是对症下的药。理解问题可以更好的实践模式。
    • 解决方案

             解决方案描述了模式是如何解决问题的,针对的是问题的抽象分析和解决方法,而不是具体实现。按照解决方式组合出来的效果也需要权衡,做什么都是有代价的


          设计模式一书将模式分为创建型模式、结构型模式、行为型模式。
          设计模式有两个特点,可复用,作用域是面向对象的设计。

    二、设计模式之道

       设计模式之道在与找到变化,封装变化。
       找到变化回答了where,即在哪里使用设计模式。
               封装变化回答了why,即为什么使用设计模式以及使用哪个设计模式。

    三、设计原则

       设计原则和设计模式是互补的,体现在,设计原则用来指导类的定义的设计,而设计模式主要用来指导类的行为的设计。
       solid的原则


    设计原则英文名称 名称 说明
    SRP 单一职责原则 一个类只承担一种责任,否则就进行拆分。一生爱一人嘛
    OCP 开放封闭原则 对扩展开放,对修改关闭。可以认识其他异性,但是不能换恋人
    LSP 里氏替换原则(老色批原则) 继承关系时,父类对象可以由任意子类对象进行替换,结果不会发生变化(##)
    DIP 依赖倒置原则 高层模块不应该依赖低层模块,都依赖于抽象。 抽象和细节犹如白蛇和白素贞的区别
    ISP 接口隔离原则 接口设计尽量的小,方法尽量集中。不要大杂烩,尽量白开水。主要原因是实现接口类的负重会降低。(##)

      

  • 相关阅读:
    linux 上安装sqlplus
    如何使用 SVN 找到一段时间内提交的代码文件
    nginx 快速检查配置文件的方法
    nginx 报错 [emerg] 1164#1664: bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)
    nginx 负载均衡
    C#可扩展编程之MEF学习
    5天玩转C#并行和多线程编程
    C#综合揭秘——深入分析委托与事件
    解析C#中[],List,Array,ArrayList的区别及应用
    在easyui datagrid中formatter数据后使用linkbutton
  • 原文地址:https://www.cnblogs.com/Xilan/p/15046861.html
Copyright © 2011-2022 走看看