• 设计原则


    设计原则1:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。把会变化的部分取出并封装起来,以便以后可以轻易地改动或扩充此部分,而不影响不需要变化的部分。

    设计原则2:针对接口编程,而不是针对实现编程。

      针对接口编程的真正意思是针对超类型编程:这里所谓的接口有多个含义,接口是一个概念,也是一种Java的interface构造。你可以在不涉及interface的情况下,针对接口编程,关键就在多态。利用多态,程序可以针对超类型编程,执行时会根据实际状况执行到真正的行为,不会被捆绑死在超类型的行为上。针对超类型编程这句话,可以更明确地说成变量的声明类型应该是超类型,通常是一个抽象类或是一个接口,如此,只要是具体实现次超类型的类所产生的对象,都可以指定给这个变量。这也意味着,声明类时不用理会以后执行时的真正对象类型。

    针对实现编程:                                                              针对接口编程:

      Dog d = new Dog();                                                     Animal animal = new Dog();

      d.bark();                                                                      animal.makeSound();

    设计原则3:多用组合,少用继承

      使用组合建立系统具有很大的弹性,不仅可将算法族封装,更可以在运行时动态的改变行为,只要组合后的行为对象符合正确的接口标准即可。

    设计原则4:为了交互对象之间的松耦合设计而努力。

      关于观察者的一切,主题只知道观察者实现了某个接口。主题不需要知道观察者的具体类是谁,做了什么或者其他任何细节。任何时候我们都可以增加新的观察者。因为主题唯一依赖的东西是一个实现Observer接口的对象列表,所以我们可以随时增加观察者;在运行时用新的观察者取代现有的观察者或删除某些观察者。

    设计原则5:类应该对扩展开放,对修改关闭

      我们的目标是允许类容易扩展,在不修改现有代码的情况下,就可搭配新的行为。

    设计原则6:要依赖抽象,不要依赖具体类(依赖倒置原则)

      这个原则说明了不能让高层组件(有其他底层组件定义其行为的类)依赖底层组件,而且不管高层或底层组件,两者都应该依赖于抽象。

    下面的知道方针,能避免你在oo涉及中违反依赖倒置原则:

      变量不可以持有具体类的引用;不要让类派生自具体类;不要覆盖基类中以实现的方法

    设计原则7:最少知识原则:只和你的密友谈话

      这个原则说明我们只应该调用属于以下范围的方法:

        该对象本身;

        被当做方法的参数而传递进来的对象;

        此方法所创建或实例化的任何对象;

        对象的任何组件

    设计原则8:好莱坞原则:别调用我们,我们会调用你

    设计原则9:一个类应该只有一个引起变化的原因

      内聚用来度量一个类或模块紧密地达到单一目的或责任。当一个模块或一个类被设计成只支持一组相关的功能的时候,我们说它具有高内聚。

  • 相关阅读:
    求相同号码一天内的上网流量——mapreduce
    scala初学
    对web日志文件实现按照人员、行为分类
    08 ROS阶段总结——package.xml 和 CMakeLists.txt 详细解读
    06 ROS中的节点、话题和服务
    07 ROS 的常见消息类型
    01 ROS下的三维点云数据处理(一)点云数据来源
    01 Opencv系列(一)ROS和opencv图像数据的转换
    01 ROS的运行架构——环境变量和工作空间
    02 Opencv系列(二)ROS框架下的摄像头调用方法
  • 原文地址:https://www.cnblogs.com/forerver-elf/p/5977372.html
Copyright © 2020-2023  润新知