• 面向对象的理解


    面向对象的三大特性

    封装

    继承

    多态

    面向对象的七大原则

    单一职责原则:每一个类应该专注于做一件事情。即高内聚,低耦合。类的功能要单一,体积不要过于庞大。

    开闭原则:一个对象对扩展开发,对修改关闭。即:对类的改动是通过增加代码进行的,而不是修改现有代码。一个模块在扩展性方面应该是开放的,而在更改性方面应该是封闭的。比如:一个网络模块,原来只提供服务端功能,而现在要加入客户端功能,name应当在不用修改服务端功能的代码前提下,就能够增加客户端功能的实现代码,这要求在设计之初,就应当将服务端和客户端分开,公共部分抽象出来。

    里氏替换原则:在任何父类出现的地方都可以用它的子类来替代。子类应当可以替换父类并出现父类能够出现的任何地方。比如,公司搞年度晚会,所有员工可以参加抽奖,那么不管是老员工还是新员工,也不管是总部员工还是外派员工,都应当可以参加抽奖,否则公司就不和谐了。

    依赖倒置原则:要依赖于抽象,不要依赖于具体实现。

    接口隔离原则:应当为客户提供尽可能小的单独的接口,而不是提供大的总的接口。接口的定义的标准尽可能单一,致力于对接口的多实现。接口规模不要臃肿。

    迪米特原则:一个对象应当尽量少的与其他对象之间发生相互作用,是得系统功能模块相对独立。降低耦合

    组合/聚合复用原则:尽量使用组合/聚合的方式,而不是使用继承。降低耦合度

    简单来说:软件工程中对象之间的耦合度就是对象之间的依赖性。指导使用和维护对象的主要问题是对象之间的多重依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。有软硬件的耦合,还有软件各模块之间的耦合。

    总的来说:耦合是影响软件复杂程度和设计质量的一个重要因素,在设计上我们应采用以下原则:

    如果模块间必须存在耦合,就尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,尽量避免使用内容耦合。

  • 相关阅读:
    THOR: Tracking Holistic Object Representations
    Multi-Agent Reinforcement Learning Based Frame Sampling for Effective Untrimmed Video Recognition
    Multi-shot Pedestrian Re-identification via Sequential Decision Making
    Deep Reinforcement Learning with Iterative Shift for Visual Tracking
    A3C 算法资料收集
    Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor
    Real-time ‘Actor-Critic’ Tracking
    基于java的分布式爬虫
    跟我一起数据挖掘(23)——C4.5
    众推架构的进一步讨论
  • 原文地址:https://www.cnblogs.com/miss103/p/13231687.html
Copyright © 2020-2023  润新知