美文网首页
设计模式与项目架构

设计模式与项目架构

作者: conowen | 来源:发表于2018-04-23 15:47 被阅读12次

    设计模式的6大原则

    • 单一职责原则(Single Responsibility Principle,简称SRP )
      简单来说就是一个方法或者一个模块实现一个功能,不要堆积太多功能。

    • 里氏替换原则(Liskov Substitution Principle,简称LSP)
      简单来说就是子类继承父类的时候,尽量避免覆盖修改父类的方法。

    • 依赖倒置原则(Dependence Inversion Principle,简称DIP)
      简单来说就是高层抽象不应该依赖低层模块

    • 接口隔离原则(Interface Segregation Principle,简称ISP)
      简单来说就是不要建立一个很庞大的接口供所有依赖它的类调用。这一点和单一职责原则挺相似的。

    • 迪米特法则(Law of Demeter,简称LoD)
      迪米特法则也叫最少知识原则,含义是一个对象应该对其他对象有最少的了解,就是一个方法或者模块,只提供简单的接口给外部使用就行,方法内部不必让外部知道。

    • 开闭原则
      类、模块、函数等应该是可以拓展的,但是不可修改。

    常用的设计模式

    简单来说,所谓好的设计模式,就是要尽量避免耦合严重,要优雅轻量,职责单一、清晰明了。

    常用的设计模式
    1、创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
    2、结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
    3、行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

    项目架构

    iOS的项目架构主要是MVC、MVP、MVVM、MVCS

    • MVC
      Model-View-Control
      比较基础通用的项目架构,M负责数据,V负责视图显示,C负责逻辑,主要职责是与M、V的通讯,负责把M更新到V。所以理论上V和M是不会进行通讯的。

    • MVP
      Model-View-Presenter
      其实这个架构还是有C的,全称应该是MVCP,Presenter主要负责V与M的数据通讯与逻辑处理

    • MVVM
      Model-View-ViewModel
      其实这个架构也还是有C的,全称应该是MVCVM,ViewModel负责View和Model的通讯,为了减轻C的逻辑处理。这种模式通常使用链式编程,使用ReactiveCocoa 库要配合实现。

    • MVCS
      S为server,主要存放网络请求或者数据逻辑之类的。

    这些架构其实基本都是MVC演化而来的,需要解决的一个问题是如果减轻C或者M的臃肿,并不能说哪个架构好或者不好,因为架构都是根据业务而定,随着业务的增加,架构也会随着优化。

    相关文章

      网友评论

          本文标题:设计模式与项目架构

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