zoukankan      html  css  js  c++  java
  • 6大设计原则与常见设计模式(概述)

    关于设计模式(原则),看到这样一段有趣的话。

    如果写程序比作打架

    那设计模式就是套路,比如长拳、永春啥的

    都是打架,有的是大侠切磋,有的是流氓群殴

    但大侠有时候也未必大的过流氓,因为流氓不按套路出牌

    流氓牛了,厉害了,流氓的打架方法慢慢就成了新的套路,流氓也就编程里的大侠了

    设计模式即是如此,起初GOF是四个和我们差不多的流氓

    但是架打多了,他们注意总结和分析,从群殴中整理了一组套路出来,就是GOF23模式,所以他们就成为大侠了

    你想成为大侠,先学套路是对的,但是也要注意实际应用,不要死套套路

    结合套路慢慢形成自己风格,你就不是流氓了。

    编码遵循设计原则是为了代码复用,增加代码健壮性、可维护性。

    6大设计原则:

     (1) 单一职责原则(Single Responsibility Principle,SRP)

     (2) 里氏替换原则(Liskov Substitution Principle,LSP)

     (3) 依赖倒置原则(Dependence Inversion Principle,DIP)

     (4) 接口隔离原则(Interface Segregation Principle,ISP)

     (5) 迪米特法则(Law Of Demeter,LOD)

     (6) 开闭原则(Open Closed Principle,OCP)

     (补充) 组合/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)

    6大设计原则详解(一):http://www.cnblogs.com/LangZXG/p/6242925.html

    6大设计原则详解(二):http://www.cnblogs.com/LangZXG/p/6242927.html

    设计模式就是实现了这些原则,从而达到代码复用、增加代码的健壮性、可维护性的目的。

    23种设计模式:

    1. 创建型模式(5)

     (1) 单例模式(详解:http://www.cnblogs.com/LangZXG/p/6248835.html

     (2) 工厂方法模式

     (3) 抽象工厂模式(2种模式详解:http://www.cnblogs.com/LangZXG/p/6249425.html

     (4) 建造者模式

     (5) 原型模式

    2. 结构型模式(7)

     (1) 适配器模式(详解链接)

     (2) 装饰模式(详解链接)

     (3) 代理模式(详解链接)

     (4) 组合模式

     (5) 享元模式

     (6) 外观模式/门面模式(详解链接)

     (7) 桥接模式(详解链接)

    3. 行为型模式(11)

     (1) 模板方法模式

     (2) 中介者模式

     (3) 命令模式(详解链接)

     (4) 责任链模式

     (5) 策略模式(详解链接)

     (6) 迭代器模式

     (7) 观察者模式(详解链接)

     (8) 备忘录模式

     (9) 访问者模式

     (10) 状态模式

     (11) 解释器模式

    持续更新中...

    类图基本知识: http://www.cnblogs.com/LangZXG/p/6208716.html

     

    注:转载请注明出处   http://www.cnblogs.com/LangZXG/p/6204142.html

  • 相关阅读:
    BZOJ4401 块的计数
    poj2914 Minimum Cut 全局最小割模板题
    无向图求最小割集
    HDU3232 Crossing Rivers 数学期望问题
    poj1386 字符串类型的一笔画问题 欧拉回路
    HDU3018 几笔画(非1笔)
    欧拉路&&欧拉回路 概念及其练习
    欧拉回路基础 HDU1878 欧拉回路||并差集
    我的明天在何处
    哈夫曼树讲解
  • 原文地址:https://www.cnblogs.com/LangZXG/p/6204142.html
Copyright © 2011-2022 走看看