V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zazalu
V2EX  ›  程序员

不知道 v2 上适不适合发这个, 报着尝试心态, 还是非常想问问前辈们

  •  
  •   zazalu · 2019-08-27 10:34:55 +08:00 · 3290 次点击
    这是一个创建于 1915 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有哪些设计模式是你在完全不了解或者说没有借鉴之前就通过自己的一些编程基础能够想到并实现的呢?

    就是那种灵光一现, 突然顿悟了某种设计模式的存在意义

    6 条回复    2019-08-27 16:59:31 +08:00
    18258226728
        1
    18258226728  
       2019-08-27 10:42:22 +08:00
    感觉模板最简单,当初不知道模板设计模式,想着那么多相同行为不同实现的代码,再会想到还有抽象这个概念,然后自己写出来了
    Inside
        2
    Inside  
       2019-08-27 10:51:04 +08:00
    当然是工厂模式,这个是最容易想到的。

    设计模式是方法,可以不用太纠结,目标应该是 Single Point Of Truth.
    opengps
        3
    opengps  
       2019-08-27 10:55:22 +08:00
    单例模式就是,当年刚毕业,特别喜欢用全局静态变量,重新学了单例后发现,自己喜欢用全局静态变量就是为了单例的效果
    otakustay
        4
    otakustay  
       2019-08-27 11:07:34 +08:00   ❤️ 1
    事实上大部分设计模式是无论你知道不知道,一直会在用的
    比如有问题套一层-不是 proxy 就是 decorator
    比如搞个接口有不同实现按需选-基本是 strategy
    你甚至可以说类太多了搞一个静态的封装一下-硬说是 fascade
    写个 flutter-你不用 state 都难
    然后还有几个
    像 responsibility chain,你说一定要 chain 吗我用个数组动态注入进来 for 调用可以吗,显然是可以的
    再比如像 builder,你说一定要 build 吗搞个 factory 直接造出来有什么不妥吗,显然是没有太多不妥的
    那个 observer 一定要这么多接口吗直接搞个事件机制行不行,那当然必须是可以的
    真正麻烦的几个像 mediator、bridge、flyweight、command 确立是只解决特定场景的特定问题的,不是说他们很难想出来,而是普通人本身就不容易遇到这些场景
    至于工厂,我真的很想吐槽工厂模式占 3 个这种奇葩,也很想吐槽没有工厂配合的话 90%的设计模式都会没有任何意义这件事……
    fvckDaybyte2
        5
    fvckDaybyte2  
       2019-08-27 16:22:44 +08:00 via iPhone
    @opengps 单例不就是实例化后保存为全局静态变量来实现么...
    otakustay
        6
    otakustay  
       2019-08-27 16:59:31 +08:00
    @fvckDaybyte2 不全是,单例的完全体是配合工厂根据上下文来单例出一个自己的子类来,同时拥有静态的能力和多态性
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1555 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 17:13 · PVG 01:13 · LAX 09:13 · JFK 12:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.