系统设计题

高级设计题1

这是一道设计题,为了方便理解,所有的需求均取自真实世界。

  1. Frisk工厂可以生产许多不同类型的笔:如铅笔,钢笔和马克笔等

  2. 所有的笔可以写字,可以写到不同的载体上,如纸,玻璃

  3. 不是所有的笔都能往所有的载体上写字,如钢笔就无法把字写到玻璃上

  4. 有些载体上写的内容是可擦除的(取决于是用什么笔写的,例如马克笔写在玻璃上是可擦除的,但写在纸上是不可擦除的,而铅笔无论写在哪都可以擦除)

  5. 所有的载体可写入的内容总量都是有上限的,超过容量后再写入需要先擦除以前写的内容

  6. 每支笔都是消耗品,每次使用都会减少耐久度,不同的笔往不同的载体上写字会导致不同程度的损耗

  7. 笔的耐久度为0后将无法再使用,此时会被工厂进行回收

根据你对以上需求的理解,给出你的代码架构设计,表达形式不限(建议使用UML或伪代码),要求

  • 架构尽可能优雅,并且不做过度设计

  • 尽可能准确、简洁地定义每一个概念

参考题解:https://www.jianshu.com/p/a4d7b267ddfd

最后更新于