面向对象:四大基本特征、七大设计原则、二十四种模式(自己面试遇见)

面向对象的四大基本特性
抽象:提取现实世界中某事物的关键特性,为该事物构建模型的过程。对同一事物在不同的需求下,需要提取的特性可能不一样。得到的抽象模型中一般包含:属性(数据)和操作(行为)。这个抽象模型我们称之为类。对类进行实例化得到对象。

封装:封装可以使类具有独立性和隔离性;保证类的高内聚。只暴露给类外部或者子类必须的属性和操作。类封装的实现依赖类的修饰符(public、protected和private等)

继承:对现有类的一种复用机制。一个类如果继承现有的类,则这个类将拥有被继承类的所有非私有特性(属性和操作)。这里指的继承包含:类的继承和接口的实现。

多态:多态是在继承的基础上实现的。多态的三个要素:继承、重写和父类引用指向子类对象。父类引用指向不同的子类对象时,调用相同的方法,呈现出不同的行为;就是类多态特性。多态可以分成编译时多态和运行时多态。

抽象、封装、继承和多态是面向对象的基础。在面向对象四大基础特性之上,我们在做面向对象编程设计时还需要遵循有一些基本的设计原则。

面向对象的七大设计原则

SOLID原则(单一职责原则、开放关闭原则、里氏替换原则、接口隔离原则和依赖倒置原则) 
迪米特法则 
组合优于继承原则(合成复用原则)。 
在遵循这些面向对象设计原则基础上,前辈们总结出一些解决不同问题场景的设计模式,以四人帮的gof23最为知名。

24种设计模式(gof23+1)
  创建型模式:
    1.简单工厂模式(不包含在gof23中)
    2.工厂模式
    3.抽象工厂模式
    4.单例模式
    5.原型模式
  创建者模式
    6.结构型模式:
    7.组合模式
    8.装饰者模式
    9.外观模式
    10.适配器模式
    11.代理模式
    12.享元模式
    13.桥接模式
  行为型模式:
    14.观察者模式
    15.策略模式
    16.状态模式
    17.中介模式
    18.模板方法
    19.命令模式
    20.备忘录模式
    21.访问者模式
    22.解释器模式
    23.迭代器模式
    24.职责链模式
这里只是简单描述了定义和特征以及设计模式的关系,具体细节不讨论

在面试的时候被面试官问道你知道哪些设计模式,还有单例模式是怎样的?

单例模式这里回答了分为两种:饱汉模式和饿汉模式,我博客里面有

这个我听老师说有个学生在面试的时候被提问到,所以还是了解记录一下
---------------------
作者:hopeplus
来源:CSDN
原文:https://blog.csdn.net/hope900/article/details/78647466?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/hplsharenote/p/9802388.html