240 发简信
IP属地:广东
  • 120
    Builder Pattern(建造者模式)

    解决的问题 解决演示文稿导出各种格式的问题。假设你有一个演示文稿(Presentation),演示文稿里包含多张幻灯片(Slide),需要实现将演示文稿导出为PDF、视频等文...

  • Abstract Pattern(抽象工厂模式)

    解决的问题 假设你要开发一个app,app的界面支持MaterialDesign和Ant两种主题。不同的主题所用的组件是不一样的,例如按钮组件,MaterialDesign主...

  • Singleton Pattern(单例模式)

    解决的问题 当你需要在代码的每个地方,都能访问到同一个实例时,就可以用Singleton Pattern(单例模式)了。这是最简单的设计模式了。每种语言实现单例的方式可能会不...

  • Prototype Pattern(原型模式)

    解决的问题 以电脑的文件管理app为例,文件夹里有各种类型的文件(文本、图片、视频等),鼠标右键点击文件后,后弹出一个菜单(ContextMenu),菜单显示可以对文件的操作...

  • 120
    Proxy Pattern(代理模式)

    解决的问题 开发一个电子书app,可以这样设计: 每个电子书实例化后,都要占用一些计算机资源(CPU、内存等),那么当电子书多了后,就会有性能问题。这样情况,可以使用Prox...

  • 120
    Bridge Pattern(桥接模式)

    解决的问题 开发一个电视机遥控器app,要求可以适配各种的电视机品牌(Sony、Samsung等)。遥控器分为基础版和高级版,基础版只能开关机,高级版可以切换频道。可以这样设...

  • Flyweight Pattern(轻量级模式)

    解决的问题 当创建了大量对象,可能会因为使用内存过多而导致性能问题,可以考虑使用 Flyweight Pattern(轻量级模式)。例如,开发一个地图软件,地图上面需要标注 ...

  • Decorator Pattern

    解决的问题 为一个类添加更多功能。简单的情形可以使用继承。有些复杂的情况使用继承就比较麻烦了。例如要开发一个保存数据到云端的功能(CloudStream),有些数据可以要先加...

  • Adapter Pattern

    解决的问题 开发了一个给照片添加滤镜的功能。假设需要使用第三方的滤镜,但是第三方的滤镜的接口和自己的滤镜不兼容,那么就可以使用适配器模式将第三方的滤镜转换为自己可以用的滤镜。...

  • Composite Pattern

    解决的问题 将对象组合成层级结构,支持一起修改。例如文件结构:Root Folder下有两个文件夹:Videos Folder和Images Folder,Videos Fo...

  • 120
    Visitor Pattern

    解决的问题 Visitor Pattern是为了在不改变类本身的代码的前提下,给类添加新的特性。 例如,HTML有各种类型的节点(HtmlNode),例如HeadingNod...

  • Chain Of Responsibility Pattern

    解决的问题 开发一个WebServer,处理Request,处理过程包括Authenticate、Compress和Log步骤。要求可以自由添加或者移除步骤。 代码 Hand...

  • 120
    Mediator Pattern

    解决的问题 所有做过前端的人都应该使用过该模式。你要开发一个界面,界面由选项列表(OptionList),文本框(TextBox)和按钮(Button)组成。在选项列表完成选...

  • 120
    Observer Pattern

    解决的问题 一个Excel表格,你修改一个地方的数值(DataSource),相关的图表(Chart)和另一个表格(SpreadSheet)也会同步发生变化。 代码 Obse...

  • 120
    Command Pattern

    解决的问题 开发一个按钮组件,不同的按钮点击执行不同的命令。 代码 Command: Button: DocumentService: DeleteDocumentComma...

  • 120
    Template Pattern

    解决的问题 开发一个银行软件,有付款、转账等任务,要求在执行任务前,需要先记录日志。 代码 Logger: Task: PayTask: TransferTask: Test...

  • 120
    Strategy Pattern

    解决的问题 开发一个保存图片的功能,保存图片前,需要先对图片进行压缩、添加滤镜等处理。 代码 Compressor: JpegCompressor: PngCompresso...

  • Iterator Pattern

    解决的问题 浏览器的浏览记录,需要遍历浏览记录,但是又不想暴露保存浏览结构的数据结构;本质上也是数据的封装。 代码 BrowserHistory: Iterator: Lis...

个人介绍
JavaScript全栈开发者。