面试实战题-其他知识(设计模式)

设计模式

门面模式(结构型)

为了满足一组系统接口使用变得更简单,需要提供统一的访问入口。我们可以将这一组系统接口简化为一个接口,那么也算是门面模式  应用场景也比较明确,主要在接口设计方面使用

门面模式 - 简书

单例模式(创建型)

为了保证全局唯一,除了使用单例,我们还可以用静态方法来实现。不过,静态方法这种实现思路,并不能解决我们之前提到的问题。如果要完全解决这些问题,我们可能要从根上,寻找其他方式来实现全局唯一类了。比如,通过工厂模式、IOC 容器(比如 Spring IOC 容器)来保证,也可以程序员自己来保证(自己在编写代码的时候自己保证不要创建两个类对象)。

设计模式1-单例模式

工厂模式(创建型)

工厂模式作用:封装变化:创建逻辑有可能变化,封装成工厂类之后,创建逻辑的变更对调用者透明。代码复用:创建代码抽离到独立的工厂类之后可以复用。隔离复杂性:封装复杂的创建逻辑,调用者无需了解如何创建对象。控制复杂度:将创建代码抽离出来,让原本的函数或类职责更单一,代码更简洁。 

http://c.biancheng.net/view/1348.html  http://c.biancheng.net/view/1351.html 

策略模式(行为型)

该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户 策略模式用来解耦策略的定义、创建、使用。

http://c.biancheng.net/view/1378.html

状态模式(行为型)

状态机又叫有限状态机,它有 3 个部分组成:状态、事件、动作。其中,事件也称为转移条件。事件触发状态的转移及动作的执行。不过,动作不是必须的,也可能只转移状态,不执行任何动作。

64 | 状态模式:游戏、工作流引擎中常用的状态机是如何实现的?-设计模式之美-极客时间

观察者模式(行为型)

指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。

http://c.biancheng.net/view/1390.html

代理模式(结构型)

 静态代理是通过在代码中显式定义一个业务实现类一个代理,在代理类中对同名的业务方法进行包装,用户通过代理类调用被包装过的业务方法;     JDK动态代理是通过接口中的方法名,在动态生成的代理类中调用业务实现类的同名方法;     CGlib动态代理是通过继承业务类,生成的动态代理类是业务类的子类,通过重写业务方法进行代理;

设计模式5-代理模式-CSDN博客

领域驱动设计DDD

将业务逻辑从服务层迁移到域模型类 基于贫血模型的传统的开发模式,重 Service 轻 BO;基于充血模型的 DDD 开发模式,轻 Service 重 Domain

https://www.cnblogs.com/netfocus/archive/2011/10/10/2204949.html  实战DDD(Domain-Driven Design领域驱动设计:Eric Evans DDD) - 极道  

模板方法模式(行为型)

模板模式有两大作用:复用和扩展。其中,复用指的是,所有的子类可以复用父类中提供的模板方法的代码。扩展指的是,框架通过模板模式提供功能扩展点,让框架用户可以在不修改框架源码的情况下,基于扩展点定制化框架的功能。 回调跟模板模式一样,也具有复用和扩展的功能

58 | 模板模式(上):剖析模板模式在JDK、Servlet、JUnit等中的应用-设计模式之美-极客时间

原型模式(创建型)

如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,我们可以利用对已有对象(原型)进行复制(或者叫拷贝)的方式,来创建新对象,以达到节省创建时间的目的。这种基于原型来创建对象的方式就叫作原型设计模式,简称原型模式。 

47 | 原型模式:如何最快速地clone一个HashMap散列表?-设计模式之美-极客时间

状态模式(行为型)

状态模式是状态机的一种实现方式。状态机又叫有限状态机,它有 3 个部分组成:状态、事件、动作。其中,事件也称为转移条件。事件触发状态的转移及动作的执行。不过,动作不是必须的,也可能只转移状态,不执行任何动作。

64 | 状态模式:游戏、工作流引擎中常用的状态机是如何实现的?-设计模式之美-极客时间

计算机网络

三次握手四次挥手

● TCP 包头很复杂,但是主要关注五个问题,顺序问题,丢包问题,连接维护,流量控制,拥塞控制; ● 连接的建立是经过三次握手,断开的时候四次挥手

趣谈网络协议-TCP协议(上):因性恶而复杂,先恶后善反轻松

网络分层,以及每层的协议

OSI七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 TCP/IP四层、链路层、网络层(IP/ICMP/IGMP)、传输层(tcp/udp)、应用层(http/ftp)

https://zhuanlan.zhihu.com/p/24983364

TCP是怎么保证数据不丢失的

web服务器

netty

一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持 使用更高效的socket底层,对epoll空轮询引起的cpu占用飙升在内部进行了处理,避免了直接使用NIO的陷阱,简化了NIO的处理方式。 采用多种decoder/encoder 支持,对TCP粘包/分包进行自动化处理 可使用接受/处理线程池,提高连接效率,对重连、心跳检测的简单支持 可配置IO线程数、TCP参数, TCP接收和发送缓冲区使用直接内存代替堆内存,通过内存池的方式循环利用ByteBuf 通过引用计数器及时申请释放不再引用的对象,降低了GC频率 使用单线程串行化的方式,高效的Reactor线程模型 大量使用了volitale、使用了CAS和原子类、线程安全类的使用、读写锁的使用

【面试题】9.Netty相关_时间轮 空转-CSDN博客   Netty入门教程——认识Netty - 简书 

Git

git工作流程

各个分支的用途: 1、Master:所有提供给用户使用的正式版本,都在这个主分支上发布 /2、Develop:开发用的分支 2、Feature:开发某特定功能,从Develop分支上面分出来。开发完成后,再并回去 3、release预发布分支:指发布正式版本前,我们可能需要有一个预发布的版本进行测试 4、hotfixes分支:软件正式发布以后,难免会出现bug。这时就需要创建一个分支,进行bug修补

git 的工作流程(纯干货)_简述git的工作流程-CSDN博客

Linux

awk命令从字符串中提取数字

https://www.cnblogs.com/muahao/p/6729603.html

查询前缀为xx的文件(不含文件夹)

uml

UML知识

用例图:角色及其功能项的列举 类图:类和类的属性、方法以及类之间的关系 时序图:对象间按时间顺序交互 活动图:流程图+泳道图

https://www.cnblogs.com/jiangds/p/6596595.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值