被设计的面试题与设计性的回答

不知不觉中,身边的Android 开发同事都已经变成了5年以上的老兵了,并且公司递过来的简历也都是五年以上的。这种情况下# 码农心经:探索软件开发的行为与架构 里描述的行为价值已经是必备项目了,那怎么简单的考察面试者的基础设计能力,这就是个问题了。

如果简单的问常见的设计模式,就没意义了,一般情况下招过来的人,他们也没有机会写项目架构的搭建,所以问常见的或者面试热门的架构问题就不行了。

在面对设计性的面试题时,我们需要展现出对系统架构和设计模式的深刻理解,而不仅仅停留在表面的知识点上。以下是针对设计性问题的回答思路,旨在突显应聘者的设计能力和实际经验。

架构思维(例子)

假设:需要做一个绑定业务,但是要求不能关注具体的绑定方式

解析: 很简单一句话,这是我设计的一个场景。

主要涉及到面向对象设计中的一些原则,特别是策略模式依赖倒置原则, 以及面向接口编程的编程技巧等。

其中包含的面试点有:

  1. 面向接口编程: 此设计遵循"面向接口编程而不是面向实现编程"的原则。这样可以降低代码的耦合度,使得系统更加灵活和可维护。
  2. 策略模式: 通过使用策略模式,可以在运行时选择不同的绑定策略,而不需要修改客户端代码。这提供了一种灵活的方式来扩展和变化系统的行为。
  3. 依赖倒置原则: 高层模块(客户端代码)不应该依赖于低层模块(具体的绑定策略类),而是应该依赖于抽象(绑定接口)。这种设计遵循依赖倒置原则,使得系统更加稳定和可扩展。
  4. 扩展性: 面试者可以被问及如何添加新的绑定策略而不影响现有代码。通过创建新的绑定策略类并实现绑定接口,系统可以轻松地添加新的绑定方式。
  5. 可维护性: 如何保持系统的可维护性,特别是在将来可能添加新的绑定方式时。合理的接口和类的组织结构可以使得系统更易于理解和修改。

对设计模式的掌握成都程度

你认为你写过的最爽且贼6的设计模式是什么

解析: 不要张口就是单例,还是# 码农心经:探索软件开发的行为与架构 中的那句话,行为模式就是必备的,要想突出必须设计性回答。

比如,聊一个牛逼点的设计模式,结合面试官所在公司的业务(通过网络了解,或者通过HR简单聊几句),说一个解决某种问题的设计方式。

比如你面试的公司是音视频的,你可以说你使用抽象工厂模式很6,之前为了解耦业务视频不强行依赖于某一个SDK而设计了一种可以高度解耦的,动态切换播放器内核的SDK,等。

学会用设计面试题的思维回答面试题

说实话,我们这个工作经验,早已经脱离了八股文的阶段,在面试过程中八股文可能是必问项,但是并不是决定是否能入职的必要条件,我们要结合技术点,回答问题的,且往目标公司的业务方向去靠。要学会将自己熟练的技术运用到回答中

要巧妙!!!

切记,不要说工作这么多年了,记不清了

相关推荐
有位神秘人1 分钟前
Android获取设备中本地音频
android·音视频
Boop_wu1 分钟前
简单介绍 JSON
java·开发语言
JMchen1234 分钟前
Android网络安全实战:从HTTPS到双向认证
android·经验分享·网络协议·安全·web安全·https·kotlin
CS创新实验室6 分钟前
Pandas 3 的新功能
android·ide·pandas
知识即是力量ol7 分钟前
初识 Kafka(一):分布式流平台的定义、核心优势与架构全景
java·分布式·kafka·消息队列
爱吃生蚝的于勒11 分钟前
【Linux】线程概念(一)
java·linux·运维·服务器·开发语言·数据结构·vim
kong790692812 分钟前
Nginx性能优化
java·nginx·性能优化
Pluchon13 分钟前
硅基计划4.0 算法 简单模拟实现位图&布隆过滤器
java·大数据·开发语言·数据结构·算法·哈希算法
我命由我1234514 分钟前
Java 泛型 - Java 泛型通配符(上界通配符、下界通配符、无界通配符、PECS 原则)
java·开发语言·后端·java-ee·intellij-idea·idea·intellij idea
Seven9714 分钟前
AQS深度探索:以ReentrantLock看Java并发编程的高效实现
java