最新软考(软件设计师)考点总结 -- 面向对象设计基础(1),阿里大牛教你自己写Java框架

那么如何才能正确的掌握Redis呢?

为了让大家能够在Redis上能够加深,所以这次给大家准备了一些Redis的学习资料,还有一些大厂的面试题,包括以下这些面试题

  • 并发编程面试题汇总

  • JVM面试题汇总

  • Netty常被问到的那些面试题汇总

  • Tomcat面试题整理汇总

  • Mysql面试题汇总

  • Spring源码深度解析

  • Mybatis常见面试题汇总

  • Nginx那些面试题汇总

  • Zookeeper面试题汇总

  • RabbitMQ常见面试题汇总

JVM常频面试:

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

Mysql面试题汇总(一)

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

Mysql面试题汇总(二)

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

Redis常见面试题汇总(300+题)

Redis高频面试笔记:基础+缓存雪崩+哨兵+集群+Reids场景设计

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

在这里插入图片描述

面向对象的分析: 认定对象、组织对象、描述对象之间的相互关系、定义对象操作、定义对象的内部消息

分析过程中: 采用名词短语识别对象,动词短语识别对象操作。

对象是基本的运行实体,它既包括数据(属性),也包括作用于数据的操作(行为)。

对象的状态: 用来标识对象的所有属性以及每个属性的当前值。

行为: 对象根据它的状态以及消息传递所采取的行动和所作的反应

操作: 一个类提供个给它的对象的一种服务

封装: 一种信息的隐蔽技术,使对象的使用者与对象的生产者分离,通过组件提供功能和接口,开发者无需了解所使用的软件组件内部的工作机制,只需要知道如何使用组件接口即可。

继承: 在定义和实现一个类时,可以在一个已存在的类的基础上进行。

一种模仿现实世界中继承关系的一种类之间的关系,是父类(超类)和子类之间共享数据的方法和机制。一个父类可以有多个子类,子类可以继承父类或祖先类的属性或操作作为自己的内容而不用重新定义,也可以覆盖这些操作,并加入新的内容。

覆盖: 子类通过更具体的方式实现从父类继承来的方法

多重继承: 一个类可以继承另一个类,而另一个类可以继承别的类。多重继承可能造成混淆的情况,出现二义性的成员。

多态: 多种状态,即接口的不同实现方式,例如游戏中不同角色发动攻击时会有不同的效果。多态的实现受到继承的支持,利用类的继承的层次关系,把具有通用功能的消息存放在高层次,而不同的实现这一功能的行为放在较低层次。一个对象发送通用消息服务时,要根据接收对象的具体情况将求的操作与实现的方式进行连接,即动态绑定,以实现这些低层次上发生的对传给用消息以不同响应。

参数多态(静态多态): 采用参数化模板,通过给出不同的类型参数,使得一个结构有多种类型

包含多态(属于动态多态): 在许多语言中都存在,最常见的例子就是子类型泛化,即一个类型是另一个类型的子类型。

过载多态(属于静态多态): 同一个名字在不同的上下文中所表示的含义不同。比如:运算符重载、函数重载

强制多态(属于静态多态): 编译程序通过语义操作,把操作对象的类型强行加依变换,以符合函数或操作符的要求。

接口: 一种特殊的抽象机制,其中操作不需要自己实现,而是需要由实现类进行实现。对于实现类为抽象类的仍然可以保持操作为抽象,如果实现类是一个具体类,其中的操作必须实现。

消息: 不同类的对象通过消息传递互相通信

绑定:面向对象系统中,绑定是一个把过程调用和响应调用需要执行的代码加以结合的过程。

静态绑定: 在编译时进行的绑定

动态绑定: 在运行时进行的绑定。

重载: 一个类中,函数或方法拥有同样的名称,单参数列表。

依赖:

泛化:一个类与它的一个或多个细化类之间的关系

组合:一种聚合关系,其中整体负责其部分的创建和销毁,如果整体不存在,那么部分也将不存在。

聚合:较大的整体类包含一个或多个较小的部分类

设计原则:

在这里插入图片描述

设计模式


在这里插入图片描述

设计模式的基本分类:

在这里插入图片描述

创建型模式

用于创建对象的模式

抽象工厂模式(Abstract Factory) : 提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。

构建器/生成器模式(Builder) : 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

工厂方法模式(Factory Method) : 定义一个用于创建对象的接口,让子类决定实例化哪一个类。使一个类的实例化延迟到其子类。

原型模式(Prototype) : 用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。

单例模式(Singleton) : 保证一个类仅有一个实例,并提供一个访问它的全局访问点。

结构型模式

主要处理类和对象的组合问题,让类或对象形成更大的结构提供相应的指导

适配器模式(Adapter) : 将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

桥接模式(Bridge) : 将抽象部分与其实现部分分离,使它们可以独立地变化。

组合模式(Composite) : 将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。

装饰模式(Decorator) : 对对象进行包装,动态地给一个对象添加一些额外的职责。(给对象添加行为)

外观模式(Facade) : 为子系统中的一组接口提供一个一致的界面。定义了一个高层接口,这个接口使得这一子系统更加容易使用。(简化接口)

享元模式(Flyweight) : 运用共享技术有效地支持打两细粒度的对象。 (对象共享)

代理模式(Proxy) : 为其他对象提供一种代理以控制对这个对象的访问。

行为型模式


主要描述类或对象交互的情况以及职责的分配问题。

责任链模式(Chain of Responsibility) : 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

命令模式(Command) : 将请求封装为一个对象,从而使得可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。

解释器模式(Interpreter) : 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。(用来表示解释语言)

迭代器模式(Iterator) : 提供一种方法顺序访问一个聚合对象中的各个元素,且不需要暴露该对象的内部表示。

中介者模式(Mediator) : 用一个中介对象来封装一系列的对象交互。使各对象不需要显式地相互引用,从而使耦合松散,而且可以独立地改变它们之间的交互。(中介对象封装对象交互)

备忘录模式(Memento) : 在不破坏封装性的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态。

观察者模式(Observer) : 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都能得到通知,并被自动更新。 (通知所有依赖对象)

感受:

其实我投简历的时候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。

特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。

也祝愿各位同学,都能找到自己心动的offer。

分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档

拿到字节跳动offer后,简历被阿里捞了起来,二面迎来了P9"盘问"

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

子文档

[外链图片转存中…(img-tEjVSNxY-1715682530689)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值