Java基础一之面向对象和面向过程

面向过程

  • 面向过程就是分析出解决问题的步骤,按照步骤一步一步实现就行了,重点放在过程上,强调功能行为,先干什么,再干什么
  • 一个程序=一堆数据+一堆算法
  • 性能比面向对象高,直接按步骤执行,消耗资源较少,实现需求比较直接,一般追求性能的都是面向过程实现的,嵌入式开发,UNIX/LINUX
  • 缺点:整个软件系统由多个函数组成,需要确定每个函数的功能,随着系统开发的不断膨胀,会导致系统直接崩溃,不易维护,扩展,复用

面向对象

  • 面向对象就是要处理的事务抽象分解成多个对象,利用对象之间的调用来处理问题,重点放在对象上
  • 一个程序=一堆对象,每个对象可能包括一堆数据和一些算法
  • 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护
  • 用木匠打一个比方, 一个“ 面向对象的” 木匠始终关注的是所制作的椅子, 第二位才是所使用的工具;一个“ 非面向对象的” 木匠首先考虑的是所用的工具。(取自《Java核心技术卷一》)
  • 缺点:性能比面向过程低,类的创建和调用都比较消耗资源

面向对象的三大特征和五大基本原则

学习的就是Java语言,主要要了解面向的对象的一些特征

1.三大特征

  • 封装Encapsulation:封装是我们实际开发中的第一步,也就是把客观事物和实际发生的问题封装成抽象的类,类把自己的数据和方法设置访问权限,对不信任的类进行信息隐藏,简单的说,类就是一个封装了数据和操作数据的方法的逻辑实体。由于信息的隐藏,使得安全性得以提升
  • 多态Polymorphism:多态就是一个类的实例方法的不同表现形式,根据参数的不同,实现不同的功能。多态的使用,使得接口重用,扩展性得以提升
  • 继承Inheritance:面向对象的主要功能,一个类通过继承另一个类,可以直接实现另一个类的所有功能,不要重新编写原来的类的情况下对类的功能进行扩展。继承的使用,使得代码可重用性得以提升
    • 继承是一般到特殊的过程,例如,交通工具类和汽车类
    • 通过继承的得到的类,叫子类或派生类
    • 被继承的类叫父类或超类

2.五大基本原则

  • 单一职责原则SRP(Single Responsibility Principle)

    • 类的功能要单一,不能承担过多责任,不然类与类之间的关联度太高,效率低(一般的设计都要求高内聚,低耦合,一个类要做的任务就是高内聚,尽可能的只完成一件事)
  • 开放封闭原则OCP(Open-Close Principle)

    • 一个类或者一个功能模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。一旦一个类设计好之后,如果需要添加新的功能,可以对现有的代码进行扩展,适应新的需求,但设计好的类应该是可以独立完成工作的,尽量不要对原有代码进行修改。
    • 实现开开放封闭原则的核心思想就是对抽象编程,而不对具体编程,因为抽象相对稳定。让类依赖于固定的抽象,所以修改就是封闭的;而通过面向对象的继承和多态机制,又可以实现对抽象类的继承,通过覆写其方法来改变固有行为,实现新的拓展方法,所以就是开放的。 “需求总是变化”没有不变的软件,所以就需要用封闭开放原则来封闭变化满足需求,同时还能保持软件内部的封装体系稳定,不被需求的变化影响。
  • 替换原则(the Liskov Substitution Principle LSP)

    • 子类应该可以替代父类,并且可以出现父类出现的所有场合,这是继承复用的基础。
    • 实现的方法是面向接口编程:将公共部分抽象为基类接口或抽象类,在子类中通过覆写父类的方法实现新的方式支持同样的职责。 Liskov替换原则是关于继承机制的设计原则,违反了Liskov替换原则就必然导致违反开放封闭原则。 Liskov替换原则能够保证系统具有良好的拓展性,同时实现基于多态的抽象机制,能够减少代码冗余,避免运行期的类型判别。
  • 依赖倒置原则(Dependecy-Inversion Principle)

    • 抽象不应依赖于细节,细节应该依赖于抽象。
    • 处理模块与模块之间的耦合,最好的就是分离接口和实现,高层调用接口,底层实现接口完成功能,因为抽象是不变的,依赖于高度的抽象是依赖倒置的核心。
  • 接口隔离原则(Interface-Segregation Principle)

    • 多个专用接口优于一个单一的通用接口
    • 核心思想是设计多个专用于小功能的接口,而不要设计个范围很广的大接口,类之间的依赖最好是建立的小的接口上,实现接口的内聚。接口设计的过于臃肿的话,实现的时候就必须继承过多的没有必要的方法,造成污染
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务