设计模式

作者: 59c4116645d0 | 来源:发表于2018-08-21 15:21 被阅读0次

设计模式:

            1责任链模式

            2桥接模式

            3适配器模式

            4单例模式

            5命令模式

六大设计原则

单一职责原则: 一个类只负责一件事

开闭原则       : 对修改关闭、对扩展开放

接口隔离原则: 使用多个专门的协议、而不是一个庞大臃肿的协议

                           协议中的方法应当尽量少

依赖倒置原则: 抽象不应该依赖于具体实现,具体实现可以依赖于抽象

                            (比如增删改查只依赖于接口定义,内部的sql、plist等方式不关注)

里氏替换原则: 父类可以被子类无缝替换,且原油功能不受任何影响

迪米特法则    :一个对象应当对其他对象尽可能少的了解(高内聚、低耦合)

责任链模式

桥接模式

场景如下,同个VC中使用不同的网络数据,并可以做多种处理

简单介绍下桥接模式?

适配器模式

一个现有类需要适应变化的问题?

                ·对象适配器

                ·类适配器

不修改原有类的方法拓展其功能。

单例模式

+ (id)sharedInstance

{

    // 静态局部变量

    staticMooc*instance =nil;

    // 通过dispatch_once方式 确保instance在多线程环境下只被创建一次

    staticdispatch_once_tonceToken;

    dispatch_once(&onceToken, ^{

        // 创建实例

        instance = [[superallocWithZone:NULL]init];

    });

    returninstance;

}

// 重写方法【必不可少】防止对外界对象直接alloc生成

+ (id)allocWithZone:(struct_NSZone*)zone{

    return [self sharedInstance];

}

// 重写方法【必不可少】防止对外界对象copy生成

- (id)copyWithZone:(nullableNSZone*)zone{

    return self;

}

命令模式

对行为进行参数化的设计模式(微博转发、评论、赞) 

作用:降低代码重合度

相关文章

  • 设计模式

    常用的设计模式有,单例设计模式、观察者设计模式、工厂设计模式、装饰设计模式、代理设计模式,模板设计模式等等。 单例...

  • 设计模式笔记汇总

    目录 设计原则 “依赖倒置”原则 未完待续... 设计模式 设计模式——策略模式 设计模式——装饰者模式 设计模式...

  • 设计模式

    《C#设计模式》 《C#设计模式》-设计模式概述 《C#设计模式》-面向对象设计原则 《C#设计模式》-单例模式 ...

  • 浅谈JS的一些设计模式

    @(书籍阅读)[JavaScript, 设计模式] 常见设计模式 设计模式简介 设计模式概念解读 设计模式的发展与...

  • 前端设计模式

    JS设计模式一:工厂模式jS设计模式二:单例模式JS设计模式三:模块模式JS设计模式四:代理模式JS设计模式五:职...

  • 设计模式之工厂模式

    设计模式之工厂模式 标签(空格分隔): 设计模式 工厂模式 设计模式的感念 设计模式的应用 工厂设计模式的产生 工...

  • JavaJavascript基础进阶(十七)JS中常用的设计模式

    单利设计模式、构造原型设计模式、发布订阅设计模式、promise设计模式 单利模式 构造原型设计模式 最贴近OOP...

  • 设计模式 - 目录

    设计模式01 - 单例模式 设计模式02 - 工厂模式 设计模式03 - 建造者模式 设计模式04 - 适配器模式...

  • 第1章 设计模式概述

    一、设计模式的概念 二、设计模式的历史 三、设计模式的要素 四、设计模式的分类 ■ 创建型设计模式 ■ 结构型设计...

  • iOS设计模式(3)适配器模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(4)抽象工...

网友评论

    本文标题:设计模式

    本文链接:https://www.haomeiwen.com/subject/edtjiftx.html