设计模式

设计模式,不需要你创新,只需要强大的复制能力!!!复制能力的建立是在你对问题的深入洞察以及对经验的深刻理解之上的。

  1. 何谓模式?
    模式乃为解决某一类问题而设计的一套通用的解决方法。模式的出现也相当于是定义了一套标准,某类问题就直接按这套标准解决就行,而不用担心千百种形式各异的解法。这在建筑方面或许不大利于创新,但在软件工程界不知道为码农提供了多大的便利。

  2. 描述模式的四个步骤:
    1) 问题描述:描述该模式解决的问题是什么样的;
    2) 应用场合:在什么环境(这个环境是指什么?)下使用该模式;
    3) 设计方法:该模式是怎样设计的;
    4) 优缺点:该模式的优缺点是什么。

  3. 设计模式的优点:
    1) 节省时间,不用你自己想设计方案,套用一个就好;
    2) 方便沟通交流,只要懂设计模式,不管用什么语言,你都能轻松理解;
    3) 易于扩展、复用和维护(我在想设计模式是怎么做到的?);

  4. 面向对象的设计原则:
    1) 单一功能原则:每个类的功能尽可能的简单,尽可能向高内聚低耦合靠拢;
    2) 开闭原则:对修改封闭,对扩展开放;
    3) 里约代替原则:在使用基类对象的地方都可以使用子类对象代替,该原则是实现开闭原则的重要依据;
    4) 控制反转原则:在设计时,应当针对抽象进行设计,而非针对具体实现进行设计。该原则是开闭原则的具体实现方式;
    5) 接口隔离原则:在设计时,应当将一个大接口依据单一职责原则分解成多个小接口,使各个小接口所具有的方法内聚性更高;
    6) 合成复用原则:将一个类的对象作为另一个类的属性。在代码重用的时候,如果使用继承不能满足里约代替原则,那么就尽可能使用合成复用;
    7) 迪米特法则:一个类应当与其他类尽可能的减少联系。有必要的话可以引进第三方类来作为联系纽带。

  5. 单例模式
    在某些场合下,对于一个类,我们只能允许它的一个实例存在,在这种情况下,我们就可以使用单例模式。单例模式有两种设计方法,分别称为饿汉式和懒汉式。
    1)饿汉式:其原理是在类中创建一个私有的静态实例,同时提供一个返回静态实例的公有静态方法。在类加载的时候就会创建该类的实例,需要使用时直接调用公有方法即可。为什么叫饿汉式?可以这么理解:哎呀,我很饿啊,你赶紧给我拿吃的过来。所以就在类加载时就创建了。
    2)懒汉式:在类中先创建一个值为空、类型为该类类型、的私有静态变量,但并不创建对象。与此同时,提供一个公有的静态方法,该方法判断静态变量是否为空,为空则使用同步方法创建该类的一个实例,并返回静态变量。为什么叫懒汉式?你现在反正不要,我懒得现在就给你,你什么时候要我再给你。哈哈!!!
    这两种模式最大的不同是一个在类加载时就创建了类的实例,一个在类加载后需要时才会创建。这两种方法各有各的优点。
    1)饿汉式优点:空间换取时间,比较适合经常使用的情况,因为在类加载时就创建了实例,不像懒汉式还需要先进行判断实例是否创建。
    2)懒汉式优点:时间换取空间,比较适合资源紧张,对象不怎么经常使用的情况。

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

推荐阅读更多精彩内容

  • 设计模式汇总 一、基础知识 1. 设计模式概述 定义:设计模式(Design Pattern)是一套被反复使用、多...
    MinoyJet阅读 3,820评论 1 15
  • 设计模式之六大原则(转载) 关于设计模式的六大设计原则的资料网上很多...
    霄霄霄霄阅读 874评论 0 1
  • 原文链接:http://blog.csdn.net/zhangerqing http://www.cnblogs....
    孤独杂货铺阅读 1,479评论 0 3
  • 一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者...
    RamboLI阅读 703评论 0 1
  • 之前老以为最难捱的日子已经过够了,但现在的日子是什么呢?暴雨时节,听听歌,趴在笔记本电脑上,靠近喇叭处,竟有种立体...
    简言之阅读 189评论 0 1