zoukankan      html  css  js  c++  java
  • 设计模式(四)六大原则

    单一原则

    一个类应该仅有一个引起变换的原则。
    个人解析:一个类不应该被各个地方当成不同的东西来使用,StudentClass 就应该当做学生使用,不应该又当学生使用,又当成孩子使用。

    开放-封闭原则

    对于类、模块、函数,需要做到对扩展开放,对修改封闭。
    个人解析:将可变的地方通过面向对象三特性,封装、继承和多态,将不变的地方封装起来,可变的地方用继承和多态,达到实现只需要增加,不需要大量修改,就实现新的功能需求的目的。

    依赖倒转原则

    高层模块不应该依赖底层模块,各模块需要内聚。抽象不依赖细节,细节依赖抽象。
    个人解析:应该对业务逻辑进行抽象,面向接口设计,将公共部分确定,高层和底层都通过接口部分进行交互,而内部只需要关注各种实现就可以。

    接口隔离原则

    每个接口应该只执行一个功能,使用多个隔离接口代替一个总接口。
    个人解析:接口定义的时候应该保持简单易懂,每个接口只执行相对独立的功能。

    迪米特法则(最少知识原则)

    两个类不需要发生通信,就不应该直接发生相互作用。若其中一个需要调用另一个类,可以添加一个第三者进行转发调用。
    个人解析:类应该尽量保持松耦合,如果不需要就应该将类的各种属性封装起来,不对外开放,除非必要否则不应该持有其他类。

    合成/聚合复用原则

    尽量使用合成和聚合,而不使用继承
    个人解析:为了防止继承使用泛滥,应该充分确定类之间的关系,抽象出合适的父类,再合成和聚合父类,降低子类的创建。一定要避免排列组合式的创建过多子类。e.g.游戏类的子类 M厂游戏,N厂游戏。制作商只是一个属性,不应该当成子类划分的依据。

  • 相关阅读:
    GTK+ 3.6.2 发布,小的 bug 修复版本
    RunJS 新增 Echo Ajax 测试功能
    Mozilla 发布 Popcorn Maker,在线创作视频
    Sina微博OAuth2框架解密
    Mina状态机State Machine
    Mozilla 发布 Shumway —— 纯JS的SWF解析器
    Code Browser 4.5 发布,代码浏览器
    ROSA 2012 "Enterprise Linux Server" 发布
    ltrace 0.7.0 发布,程序调试工具
    Artifactory 2.6.5 发布,Maven 扩展工具
  • 原文地址:https://www.cnblogs.com/ZeroyiQ/p/12109162.html
Copyright © 2011-2022 走看看