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

    单一原则

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

    开放-封闭原则

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

    依赖倒转原则

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

    接口隔离原则

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

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

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

    合成/聚合复用原则

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

  • 相关阅读:
    php判断token有效期
    ecshop数据库操作
    CSS3选择器 :nth-child(n) 如何理解
    socket_wirte、socket_read、socket_send、socket_recv
    Mysql按指定顺序排序的两种写法
    Photoshop图片优化文件大小
    Wordpress中的自定义栏目是什么玩意,有什么用?
    Windows使用压缩包安装Mysql5.7.17服务
    Discuz论坛搬家后出现 Unknown column 'app1' in 'where clause' 原因及解决办法
    .PHP后缀大写导致Linux下Composer找不到类
  • 原文地址:https://www.cnblogs.com/ZeroyiQ/p/12109162.html
Copyright © 2011-2022 走看看