zoukankan      html  css  js  c++  java
  • 设计模式入门--设计模式原则(总纲)

      小编是一名.NET程序员,工作了五年有余了。虽然从大二开始接触了设计模式,但总不得其要领。后来学习了设计模式的几大原则。

      如果说设计模式是一本内功心法的话,那么设计原则就是这内功心法的总纲啊。大凡练武奇才,学会了总纲,虽然心法不一定学全,有时也能利用总纲悟得要领(奥义)。

      单一职责原则:一个类的抽象只有一个动机,具有一个职责。类的单一职责使得一个类就像一个积木一样,更加具有灵活性。

      开放-封闭原则:即对模块、类、方法(函数)的修改持封闭意见,对正在运行的线上代码尽量不修改。但可以增加扩展子类、利用方法的多态(重构overload 增加不同参数的同名函数、重写override改变父类方法)、利用面向接口编程的灵活性来实现对扩展的开放。

      依赖倒转原则:抽象不依赖于细节,细节依赖于抽象,说白了就是要面向接口编程,大家都定义好契约(接口),但对内部实现缺失封闭的。比如,我们开发的webservice、wcf都是面向接口编程,先定义契约(接口),然后把契约告诉相关合作的人即可。

      里氏替换原则:子类可以替换父类进行工作。C#的代码机制也满足这一点的,比如子类虽然可以重写(override)父类的方法,但该父类方法前提要是虚方法。

      是迪米特法则:也是最少知识原则,即类与类之间尽量是松散的,松耦合。我理解是一个类尽量不要依赖于另外一个类,比如需要在构造方法里如果需要传入另外一个类的话,不妨通过让另外一个类先引用一个接口(或者继承一个父类),通过传入接口(或者父类)使得这两个类的关系更加松散,因为松散后期可扩展的余地才更加丰富。

      以上就是我所了解的几大设计模式原则,希望大家互相学习、交流。

  • 相关阅读:
    初涉「带权并查集」&&bzoj3376: [Usaco2004 Open]Cube Stacking 方块游戏
    【树形dp】7.14城市
    【树形背包】bzoj4033: [HAOI2015]树上染色
    【计数】51nod1677 treecnt
    【树链剖分 差分】bzoj3626: [LNOI2014]LCA
    【最短路径树】51nod1443 路径和树
    python--异常处理
    常用模块之hashlib,configparser,logging模块
    面向对象之反射及内置方法
    python之封装
  • 原文地址:https://www.cnblogs.com/wangyu19900123/p/7674852.html
Copyright © 2011-2022 走看看