关于设计模式的闲聊时间

本文更像是一个记录文章,我希望记录下目前对设计模式的感觉,并希望能够保持持续更新。

2018年12月6日

先说说目前我对设计模式持有的状态以及学习的目的,排名不分先后,想到什么写什么(这样可能会显得很没有逻辑)

  1. 知道有23种设计模式
  2. 专门去了解过部分设计模式
    单例模式,工厂模式,装饰模式,代理模式
    没错,我就只专门去看了这四种设计模式而已
  3. 在工作项目上只使用过单例模式和工厂模式,我所学习的其他两个模式并没有使用过,也许无意识的使用到过,但是自己意识不到那是已经被前人总结出来的设计模式。
  4. 曾经想专门的好好学习一下设计模式,并希望借此提高我对项目的架构能力,但是学习了几个就没学了,即便购买了《大话设计模式》这种好评很多的书籍,我也没有坚持阅读并研究完毕。
  5. 觉得设计模式是一个骗局,这里的骗局不是指设计模式本身是一场骗局(骗局这个词有些过分,应该用一个轻量级的词来形容,不过没想到用哪个轻量级的词,语文啊语文= =),而是觉得《大话设计模式》这本书中的东西是一场骗局,(没看过其他有关设计模式的书籍)原因如下:
    书中在讲解设计模式的时候,总会有一个小节专门用来介绍这种设计模式,并且添加相应的结构图。我上面提到的骗局,指的是这种结构图是一个骗局,如果按照这种结构图来对代码进行设计,得到的类会很多,我并不喜欢为了实现某个很普通的方法或者功能,而强行套用某种设计模式,除非当前这个情境非常非常用某个设计模式。
    再解释下骗局这个词,我觉得不需要按照这种结构图来实现某种设计模式,完全可以根据设计模式的概念进行设计。举个例子,大家都熟悉的单例模式,可能在你们的项目中会有类似这种形状的单例存在(很简陋的单例模式):
public class Single {
    private static Single instance;
    private Single(){}
    public static Single getInstance() {
        if (instance == null) {
            instance = new Single();
        }
        return instance;
    }
}

但是单例模式的概念:单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。

参考维基百科:单例模式

但是我们可以灵活的把这种概念进行修改,比如单例对象的类必须保证只有一个实例,我们可以把这个类改成一个变量,或者其他什么东西,大结构、小分子之类的。
所以以下代码中的变量single,我也可以认为是单例模式。

public class Single {
    public static int single = 1;
}

我觉得能够跳出书中给定的结构图,或许设计模式的作者也不希望我们的思维局限在那些设计模式结构图上面。所以我一直很讨厌很多博客在讲设计模式的时候,就直接给一张很官方的结构图来说明一切,好像必须这样设计代码才是这种设计模式似的。可能很多人在接触设计模式的时候,通过结构图能够更好的了解设计模式是怎么设计的吧,虽然我不是很喜欢这个结构图,并几乎从来不研究结构图。
(顺便一说,最近看了下代理模式,看完之后,我内心就一个想法,这不就是面向对象吗。)

  1. 最近又在研究设计模式,在了解完概念和看完例子之后,自己想出了一个场景并进行代码设计,在代码的设计过程中,发现类真的好多啊,参考上一条,所以我决定减少这个场景的类。如果类的数量到位了,会给人一种这个设计模式很标准的感觉,但是也会给我一种过度设计的感觉。所以我觉得,在某些场景,我使用了某种设计模式,如果按照结构图去进行设计,那么会给我一种过度设计的感觉(这句话是不是重复了),不按照结构图设计,别人可能会觉得我设计模式没学好,在瞎写什么的(虽然没人批评我的代码是否糟糕,因为根本就没人看)。如何让代码结构优雅又不显得臃肿,这可能是我毕生要研究的课题。

吹嘘时间:
接着上面所写的东西,大概唏嘘几句。每次我在看google工程师写的源码,或者著名的第三方框架源码的时候,都直接默认这些源码就是最优源码,默认这些源码既优雅又美丽,并希望自己设计和写出来的代码会给人这种感觉,或者给自己这种感觉。有些时候,看到优秀的源码,自己都忍不住惊叹,人脑真是个神奇的东西,居然可以实现结构那么复杂,又那么优雅的代码。(曾经因为看到优秀的源码直接对电脑屏幕上面的源码作揖= =),太巧妙了,明明程序员都没什么审美能力,但是设计的代码为啥那么优美。这可能就是编程的魅力吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容

  • 设计模式概述 在学习面向对象七大设计原则时需要注意以下几点:a) 高内聚、低耦合和单一职能的“冲突”实际上,这两者...
    彦帧阅读 3,743评论 0 14
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,723评论 2 59
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,930评论 2 89
  • 14. 今天是今年的最后一天,大家逢人见面都是喜笑颜开,欢乐融融,仿佛一切都是表现的那般美好和愉悦。天气依旧很好,...
    暴走小红帽阅读 322评论 0 0
  • 我像个SB,不知道干什么。
    蒙昧无知阅读 172评论 0 0