面试官:说说你对状态模式的理解?应用场景? 一、是什么状态模式,允许一个对象在其内部状态改变时来改变它的行为关键是区分事物内部的状态,事物内部状态的改变往往会带来事物的行为改变把事物的每种状态都封装成单独的类,跟此种状态有关的行为都...
面试官:说说你对装饰者模式的理解?应用场景? 一、是什么装饰者模式(Decorator Pattern)就是动态的给类或对象增加职责的设计模式。它能在不改变类或对象自身的基础上,在程序的运行期间动态的添加职责,跟继承相比,装饰者是一种...
面试官:说说你对责任链模式的理解?应用场景? 一、是什么责任链模式(Chain of Responsibility Pattern)就是某个请求需要多个对象进行处理,从而避免请求的发送者和接收之间的耦合关系将这些对象连成一条链子,并沿...
面试官:说说你对享元模式的理解?应用场景? 一、是什么享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结...
面试官:说说你对模板方法模式的理解?应用场景? 一、是什么在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板,它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行这种类型的设计模式...
面试官:说说你对组合模式的理解?应用场景? 一、是什么组合模式,又叫 “部分整体” 模式,将对象组合成树形结构,以表示 “部分-整体” 的层次结构。通过对象的多态性表现,使得用户对单个对象和组合对象的使用具有一致性如下面的代码:va...
面试官:说说你对命令模式的理解?应用场景? 一、是什么命令模式是最简单和优雅的模式之一,命令模式中的命令指的是一个执行某些特定事情的指令该模式旨在将函数的调用、请求和操作封装成为一个单一的对象请求以命令的形式包裹在对象中,并传给调用...
面试官:说说你对发布订阅、观察者模式的理解?区别? 一、观察者模式观察者模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知,并自动更新观察者模式属于行为型模式,行为型模式关注的是对象之间的通讯...
面试官:说说你对代理模式的理解?应用场景? 一、是什么代理模式(Proxy Pattern)是为一个对象提供一个代用品或占位符,以便控制对它的访问代理模式的关键是,当客户不方便直接访问一个对象或者不满足需要时,提供一个替身对象来控制...
面试官:说说你对策略模式的理解?应用场景? 一、是什么策略模式(Strategy Pattern)指的是定义一系列的算法,把它们一个个封装起来,目的就是将算法的使用与算法的实现分离开来一个基于策略模式的程序至少由两部分组成:策略类,...
面试官:说说你对工厂模式的理解?应用场景? 一、是什么工厂模式是用来创建对象的一种最常用的设计模式,不暴露创建对象的具体逻辑,而是将将逻辑封装在一个函数中,那么这个函数就可以被视为一个工厂其就像工厂一样重复的产生类似的产品,工厂模式...
面试官:说说你对单例模式的理解?如何实现? 一、是什么单例模式(Singleton Pattern):创建型模式,提供了一种创建对象的最佳方式,这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建在应用程序...
面试官:说说设计模式的基本原则有哪些? 一、背景前面讲到,设计模式代表了最佳的实践,是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结其目的是为了代码可重用性、让代码更容易被他人理解、保证代码可靠性是解决方案,重心是...
面试官:说说对设计模式的理解?常见的设计模式有哪些? 一、是什么在软件工程中,设计模式是对软件设计中普遍存在的各种问题所提出的解决方案设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案设计模式能使不稳定依赖...
面试官:说说微信小程序的实现原理? 一、背景网页开发,渲染线程和脚本是互斥的,这也是为什么长时间的脚本运行可能会导致页面失去响应的原因,本质就是我们常说的 JS 是单线程的而在小程序中,选择了 Hybrid 的渲染方式,将视...
面试官:说说微信小程序的发布流程? 一、背景在中大型的公司里,人员的分工非常仔细,一般会有不同岗位角色的员工同时参与同一个小程序项目。为此,小程序平台设计了不同的权限管理使得项目管理者可以更加高效管理整个团队的协同工作以往我...
面试官:说说微信小程序的支付流程? 一、前言微信小程序为电商类小程序,提供了非常完善、优秀、安全的支付功能在小程序内可调用微信的API完成支付功能,方便、快捷场景如下图所示:用户通过分享或扫描二维码进入商户小程序,用户选择购...
面试官:说说微信小程序的登录流程? 一、背景传统的web开发实现登陆功能,一般的做法是输入账号密码、或者输入手机号及短信验证码进行登录服务端校验用户信息通过之后,下发一个代表登录态的 token 给客户端,以便进行后续的交互...
面试官:说说提高微信小程序的应用速度的手段有哪些? 一、是什么小程序启动会常常遇到如下图场景:这是因为,小程序首次启动前,微信会在小程序启动前为小程序准备好通用的运行环境,如运行中的线程和一些基础库的初始化然后才开始进入启动状态,展示一个固...
面试官:说说微信小程序中路由跳转的方式有哪些?区别? 一、是什么微信小程序拥有web网页和Application共同的特征,我们的页面都不是孤立存在的,而是通过和其他页面进行交互,来共同完成系统的功能在微信小程序中,每个页面可以看成是一个pa...