设计模式之美
王争
前 Google 工程师,《数据结构与算法之美》专栏作者
120453 人已学习
新⼈⾸单¥98
登录后,你可以任选6讲全文学习
课程目录
已完结/共 113 讲
设计模式与范式:行为型 (18讲)
设计模式之美
15
15
1.0x
00:00/00:00
登录|注册

13 | 实战二(上):如何对接口鉴权这样一个功能开发做面向对象分析?

面向对象分析(OOA)、面向对象设计(OOD)、面向对象编程(OOP),是面向对象开发的三个主要环节。在前面的章节中,我对三者的讲解比较偏理论、偏概括性,目的是让你先有一个宏观的了解,知道什么是 OOA、OOD、OOP。不过,光知道“是什么”是不够的,我们更重要的还是要知道“如何做”,也就是,如何进行面向对象分析、设计与编程。
在过往的工作中,我发现,很多工程师,特别是初级工程师,本身没有太多的项目经验,或者参与的项目都是基于开发框架填写 CRUD 模板似的代码,导致分析、设计能力比较欠缺。当他们拿到一个比较笼统的开发需求的时候,往往不知道从何入手。
对于“如何做需求分析,如何做职责划分?需要定义哪些类?每个类应该具有哪些属性、方法?类与类之间该如何交互?如何组装类成一个可执行的程序?”等等诸多问题,都没有清晰的思路,更别提利用成熟的设计原则、思想或者设计模式,开发出具有高内聚低耦合、易扩展、易读等优秀特性的代码了。
所以,我打算用两节课的时间,结合一个真实的开发案例,从基础的需求分析、职责划分、类的定义、交互、组装运行讲起,将最基础的面向对象分析、设计、编程的套路给你讲清楚,为后面学习设计原则、设计模式打好基础。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《设计模式之美》
新⼈⾸单¥98
立即购买
登录 后留言

全部留言(165)

  • 最新
  • 精选
  • qinsi
    光拼url是不够的,只能覆盖如HTTP GET一类参数在url中的请求,对于如POST和PUT一类的请求,因为参数通常在body中,就没有参与token的生成。又因为这样的方案存在允许重放请求的时间间隔,就可能导致的情况是中间人截获了请求,在允许重放的时间间隔内任意修改body中的参数后发送,让接口鉴权形同虚设

    作者回复: 嗯嗯,说的有道理~

    11
    97
  • 马超
    这个鉴权功能需求分析的很好,但是和面向对象分析没有多大关系吧。

    作者回复: 我理解的面向对象分析,就是需求分析。

    5
  • QQ怪
    老师,我们公司有个重构项目,也是要最客户端鉴权,但是旧客户端没有做token之类的鉴权传token,但现在要做,如何做到兼容旧客户端做鉴权呢?

    作者回复: 后端可以对没有传递token的不做校验

    10
    5
  • 不似旧日
    有个问题: 通过同样的 token 生成算法,在服务端生成新的 token,与调用方传递过来的 token 比对。这个做法是不是有点多余? 能把token解密难道不能说明token没有问题么?

    作者回复: token是单向加密算法生成的 无法解密的

    4
    4
  • xuanyuan
    不是应该先有调研过程吗?直接就开始设计的?

    作者回复: 那估计还有会议讨论 立项之类的流程吧

    2
    2
  • teddytyy
    老师,时间戳要不要拼接在url里产生token应该都可以吧?服务端反正是按照url里解析的时间戳去过滤的

    作者回复: 放到里面的目的是让每次生成的token都不一样

    2
    2
  • Lyre
    client端生成的token在时间窗口内,假如用户在操作中停留了1分钟(时间窗口),那token就过期了吗?

    作者回复: 是要发送请求到服务器的时候才生成token

    3
    2
  • PHP是世界上最好的需要
    在不懂接口鉴权的需求下,很难总结出”粗糙“的功能框架,这个时候如何解决呢?

    作者回复: 为什么不懂呢?理论上讲这个需求比较简单的 不懂可以去找需求提出方了解

    2
    1
  • 杰洛特
    请问老师,token 在 client 端生成的话,是否意味着要告知 client 端加密算法?然后才能在 server 端解密到信息

    作者回复: 是的 要统一加密算法

    2
    1
  • 我又不乱来
    老师现在我有一个疑问,基于充血模式,我有一个domain要查询数据库,如何做比较合适呢?

    作者回复: 下一节课有答案 你可以看下

    1
收起评论
显示
设置
留言
99+
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部