代码设计思路(未完待续)

358 阅读1分钟

这篇文章主要记录

1、在日常开发中遇到的问题总结而成的抽象模型,以及对这些抽象模型的解法

  1. 锁模型

2、在工作中总结出来的编码原则

  1. 生存域原则

抽象模型及一般设计方法

  1. 锁模型:n个控制源(对象)控制/争夺m个被控对象(资源)(n>m),为了保证有序(按一定逻辑)使用资源,需要使用使用“锁”去保证在资源被占满的情况下,控制源有序行使自身逻辑的情况。

case:筛选区

当列表正常滑动时,筛选区需要根据滑动的距离向上移动相应距离,但是当受动画控制时,在动画播放期间,就需要完全受动画控制。

控制源:滑动事件、动画播放

被控对象:筛选区

控制逻辑(锁):

  • 当动画没有播放的时候,滑动事件持有锁;

  • 当动画播放时,动画播放器持有锁;

  • 锁的生命周期与筛选区一致;

编码原则

  1. 生存域原则:对象、方法都有其工作的范围,要以最少满足为原则划分生存域范围。

这个原则常用于私有/公共对象的划分,一般只在类内生效的方法/对象都需要规定为私有对象。这原则可以保证程序的安全,调试方便。不遵守这个原则会有什么后果呢?

Bad case 1:在锁模型中,锁需要在和被控资源生命周期一致,否则会出现上一轮竞争的结果影响后续的竞争。或者根本起不到锁作用的情况。