ios设计模式

编程就像一门艺术;

一段漂亮的代码,不仅要简洁易读,而且可以被反复利用;

设计模式就是一套呗反复使用、多数人知晓的、经过分类编目的、代码设计经验的

总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;

设计模式是软件工程的基石脉络,如同大厦的结构一样。

1.设计模式的原则

① 开闭原则

原理:模块应对扩展开发,而对修改关闭;

模块的行为是可以扩展的,当应用的需求改变是,我们可以对模块进行扩展,是其

具有满足那些改变的新行为,即我们可以改变模块的功能;

对模块行为进行扩展时,不必改动模块的源代码。

② 里氏代换原则(LSP)

原理:任何基类可以出现的地方,子类一定可以出现;

LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响

时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。

③ 接口隔离原则:

原理:客户端不应该依赖他不需要的接口,一个类对另一个类的依赖应该建立在最小

的接口上。

一个接口代表一个角色,不应当将不同的角色都交给一个接口,没有关系的接口合并

在一起,形成了一个臃肿的大街口,这是对角色和接口的污染。

④ 依赖倒转原则:

原理:程序要依赖于抽象接口,不要依赖于具体实现;

高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象;

抽象不应该依赖于具体,具体应该依赖于抽象;

⑤ 合成/聚合复用原则:

合成/聚合复用原则就是在一个新的对象里面使用一些已有的对象,使之成为新的对象,

新的对象通过向这些对象的委派达到复用已有功能的目的。

他的设计原则是:尽量使用合成/聚合,尽量不要使用继承。

⑥ 最少知识原则:(迪米特法则)

原理:一个对象应当对其他对象有尽少可能的了解,不和陌生人说话;

2.设计模式的分类:

设计模式共23中,共分为九种类型。

① 创造型模式:

单例模式、抽象工厂模式、生成器模式、工厂模式、原型模式;

② 接口适配

适配器模式、桥接模式、外观模式;

③ 对象去耦

中介者模式、观察者模式;

④ 抽象集合

组合模式、迭代器模式;

⑤ 行为扩展

访问者模式、装饰模式、责任链模式;

⑥ 算法封装

模板方法、策略模式、命令模式;

⑦ 性能与对象访问

享元模式、代理模式;

⑧ 对象状态模式

备忘录模式

③ 其他两种:

解释器模式、状态模式。

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

推荐阅读更多精彩内容

  • 小白程序员只能看懂源代码,而大神程序员能看懂文档。 设计模式:为解决特定场景的问题而定制的解决方案。设计原则:构建...
    印林泉阅读 855评论 0 8
  • 序言 本来是打算写一个系列的文章的,结果名字没起好,就变成这样了。设计模式和写文章一样并没有什么特别的地方,只是思...
    Fun箱Dao柜阅读 2,376评论 1 52
  • 设计模式汇总 一、基础知识 1. 设计模式概述 定义:设计模式(Design Pattern)是一套被反复使用、多...
    MinoyJet阅读 3,897评论 1 15
  • 设计模式基本原则 开放-封闭原则(OCP),是说软件实体(类、模块、函数等等)应该可以拓展,但是不可修改。开-闭原...
    西山薄凉阅读 3,748评论 3 13
  • “元素所庇护的伊布啊,解开变幻莫测的奥秘,我以银蓝雪之名{融合}!”“伊布!” “雷神托尔之震怒,九天银河之喧嚣,...
    清霓五月阅读 230评论 0 0