zoukankan      html  css  js  c++  java
  • 面向对象(OOD)的三大基本特性和OOD七大原则

    1 面向对象(OOD)的三大基本特性

    • 封装

             <1>封装:就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象进行操作,对不可信的数据或者方法进行隐藏。一个类就是一个封装了数据以及操作这些数据的的代码的逻辑实体,在一个对象内部,代码可以是私有的,不能被外界访问,通过这种方式,可以实现对象对内部数据的不同级别的保护, 以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分

              <2>  通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口

    • 继承

            <1> 指可以让某个类型的对象获得另一个类型的对象的属性的方法,他的能力是可以使用现有类的所有功能,并且在无需重新编写原来类的情况下对这些功能进行扩展。通过继承创建的类叫做:子类或者派生类,被继承的类:基类,父类或者超类。

            <2> 可以说继承就是从一般到特殊的过程

            <3> 实现继承和接口继承:实现继承直接使用基类的方法和属性,无需额外的编码,接口继承指只使用基类的属性和方法的名称,但是子类必须提供实现的能力

    • 多态

             <1> 其实就是一个类的实例的相同方法在不同的情形下由不同的表现形式。

             

             <2> 具体点说就是不同类对公共接口有不同的实现方式,单这些操作可以通过相同的方式(公共接口)予以调用。比如说:同一个接口,不同的类去实现(继承),但是每个子类重写了他的方法,这样一来,这个接口的方法在子类中的实现方式各不相同。但是方法名相同。 父类引用指向子类对象

    2 OOD七大原则

    • 开-闭原则

    开,指的是对扩展开放,即要支持方便地扩展;闭,指的是对修改关闭,即要严格限制对已有内容的修改。开-闭原则是最抽象也是最重要的OOD原则。

    • 里氏替换原则

    子类必须能够替换其父类,否则不应当设计成其子类 ,换句话说,父类出现的地方,都应该能由其子类代替。所以,子类只能去扩展基类,而不是隐藏或者覆盖基类。

    • 依赖倒置原则

    依赖倒置原则。它讲的是“设计和实现要依赖于抽象而非具体”。一方面抽象化更符合人的思维习惯;另一方面,根据里氏替换原则,可以很容易将原来的抽象替换为扩展后的具体,这样可以很好的支持开-闭原则。

    • 单一职责原则

    单一职责原则。它讲的是,不要存在多于一个导致类变更的原因,是高内聚低耦合的一个体现。

    • 接口隔离原则

    "将大的接口打散成多个小的独立的接口”。由于Java类支持实现多个接口,可以很容易的让类具有多种接口的特征,同时每个类可以选择性地只实现目标接口。

    • 最少知道原则

    一个对象就尽可能少的去了解其它对象”,从而实现松耦合。如果一个类的职责过多,由于多个职责耦合在了一起,任何一个职责的变更都可能引起其它职责的问题,严重影响了代码的可维护性和可重用性

    • 合成/聚合复用原则

    合成/聚合复用原则。如果新对象的某些功能在别的已经创建好的对象里面已经实现,那么应当尽量使用别的对象提供的功能,使之成为新对象的一部分,而不要再重新创建。新对象可通过向这些对象的委派达到复用已有功能的效果。简而言之,要尽量使用合成/聚合,而非使用继承

  • 相关阅读:
    .net操作oracle,一定要用管理员身份运行 visual studio 啊,切记切记,免得报奇怪的错误。
    基于 bootstrap 的 vue 分页组件
    前端UI框架《Angulr》入门
    EF 中 Code First 的数据迁移以及创建视图
    Oracle自动备份.bat 最新更新(支持Win10了)
    总结一下Android中主题(Theme)的正确玩法
    并不优雅
    思考:有三扇门,其中一扇门里有奖品,三选一,你选择其中一扇门之后,主持人先不揭晓答案,而是从另外两扇门中排除掉一个没有奖品的门,现在主持人问你,要不要换个门,请问你换还是不换?
    TensorFlow开发者证书 中文手册
    在C#下使用TensorFlow.NET训练自己的数据集
  • 原文地址:https://www.cnblogs.com/cheari/p/12742063.html
Copyright © 2011-2022 走看看