DesignPattern - 设计原则与设计模式初探

欢迎关注微信公众号:FSA全栈行动 👋java

1、设计原则

  • 设计模式是站在设计原则的基础之上的,因此在学习设计模式以前,有必要了解一下设计原则
  • 软件设计开发原则
    • 为了让代码有更好的重用性,可读性,可靠性,可维护性
    • 有六大原则,英文首字母拼在一块儿就是 SOLID(稳定的),因此也称之为 SOLID 原则

一、单一职责原则(Single Responsibility Principle)

  • 一个类只负责一个功能领域中的相应职责,就一个类而言,应该只有一个引发它变化的缘由
  • 是实现 高内聚、低耦合 的指导方针

解释:spring

  • 高内聚:
    • 尽量类中的每一个成员方法只完成一件事(最大限度的聚合)
    • 模块内部的代码,相互之间的联系越强,内聚就越高,模块的独立性就越好
  • 低耦合:减小类内部一个成员方法调用另外一个成员方法,避免牵一发动全身

二、开闭原则(Open Closed Principle)

  • 对扩展开放,对修改关闭,在程序须要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果

三、里氏替换原则 LSP (Liskov Substitution Principle)

  • 任何基类能够出现的地方,子类必定能够出现
  • 在程序中尽可能使用基类类型来对对象进行定义,而在运行时再肯定其子类类型,用子类对象来替换父类对象

例如:javaEE 开发中,controller->service->dao,这三层之间的引用都是使用的接口或基类,实际对象类型由 spring 注入决定。编程

四、迪米特法则(Law of Demeter)

  • 最少知道原则,一个实体应当尽可能少地与其余实体之间发生相互做用,使得系统功能模块相对独立
  • 类之间的耦合度越低,就越有利于复用,一个处在松耦合中的类一旦被修改,不会对关联的类形成太大涉及
  • 经过引入一个合理的第三者来下降现有对象之间的耦合度

五、接口隔离原则(Interface Segregation Principle)

  • 客户端不该该依赖那些它不须要的接口
  • 使用多个隔离的接口,比使用单个接口要好,下降类之间的耦合度

六、依赖倒转原则(Dependence Inversion Principle)

  • 是开闭原则的基础,针对接口编程,依赖于抽象而不依赖于具体
  • 高层模块不该该依赖底层模块,两者都应该依赖其抽象

2、什么是设计模式

设计模式是软件开发过程当中面临的通常问题的解决方案,这些解决方案是众多软件开发人员通过至关长时间的试验和错误总结出来的,能够提升代码重用性,让代码更容易被他人理解,保证代码可靠性。设计模式

一、什么是 GOF(Gang of Four)

在 1994 年,由四位做者全称 GOF(全拼 Gang of Four)四人合著出版了一本名为 Design Patterns - Elements of Reusable Object-Oriented Software,他们所提出的设计模式主要是基于如下面向对象设计原则:微信

  • 对接口编程而不是对实现编程
  • 优先使用对象组合而不是继承

二、常见的三大设计模式分类

  • 建立型模式:提供了一种在建立对象的同时隐藏建立逻辑的方式,使得程序在判断针对某个给定实例须要建立哪些对象时更加灵活
    • 经常使用:工厂模式、抽象工厂模式、单例模式、建造者模式
    • 不经常使用:原型模式
  • 结构型模式:关注类和对象的组合。继承的概念被用来组合接口和定义组合对象得到新功能的定义
    • 经常使用:适配器模式、桥接模式、装饰器模式、代理模式
    • 不经常使用:组合模式、外观模式、享元模式
  • 行为型模式:特别关注对象之间的通讯
    • 经常使用:责任链模式、迭代器模式、观察者模式、状态模式、策略模式、模板模式
    • 不经常使用:备忘录模式、命令模式
    • 几乎不用:访问者模式、中介者模式、解释器模式

若是文章对您有所帮助, 请不吝点击关注一下个人微信公众号:FSA全栈行动, 这将是对我最大的激励. 公众号不只有Android技术, 还有iOS, Python等文章, 可能有你想要了解的技能知识点哦~markdown

相关文章
相关标签/搜索