设计模式准则

简介

      作为一个技术小白注册博客好几年了,每次都是在看其他大牛的博客学习。这几天在看设计模式相关的书籍,就想
   把这段时间的体会记录下来,也便于以后翻看。
       首先设计模式的出现是为了解决在实际项目中结构混乱,功能不清晰、层次划分不明确等问题。而在使用设计模
   式的前提下,则需要遵循相应的准则。针对目前GoF提出的23种设计模式,按照不同的功能可以划分为创建型模式、结
   构型模式、行为型模式,每种设计模式也都会遵循其中的一个或多个准则。下面简单汇总下模式的分类和设计的六个
   准则。

一、模式分类

1、创建型模式

      - 单例模式
      - 工厂模式
      - 原型模式
      - 建造者模式
      - 抽象工厂模式

2、结构型模式

      * 代理模式
      * 适配器模式
      * 桥接模式
      * 外观模式
      * 享元模式
      * 组合模式
      * 装饰模式

3、行为型模式

      + 模板模式
      + 策略模式
      + 命令模式
      + 责任链模式
      + 观察者模式
      + 状态模式
      + 中介者模式
      + 迭代器模式
      + 访问者模式
      + 备忘录模式
      + 解释器模式

二、模式设计准则

      **单一职责准则(Single Responsibility Principle, SRP)**
           单一职责见名知意,每个类只需要维护好自己的一个职责,不用耦合其他功能。比如设计的一个订单类或接
           口,只完成创建订单、更新订单,而不需要去完成支付功能,因为支付功能可以在支付类或接口实现。这样
           每个类或接口各司其职,减少模块功能之间的耦合
      **依赖倒置准则 (Dependence Inversion Principle, DIP)**
           所谓依赖倒置,其实就是为了让大家在设计功能时,多考虑使用接口或者抽象类。这样在后续需求有变更需要
           更改当前功能时,可以通过依赖或者实现上层接口增加新的功能,而不需要更改已经实现的子类。也就是多
           依赖上层接口,减少修改子类代码
      **接口隔离准则 (Interface Segregation Principle,ISP)**
           接口隔离和单一职责有点相似,在单一职责中,每个类只要有一个职责就好,接口隔离是要减少与其他类或
           者接口之间的耦合。两者的目标 都是为了低耦合,但是不同的是单一职责约束的是类,针对的是程序的实
           现细节,接口隔离是约束接口,针对的是抽象和整体
      **开闭准则 (Open Closed Principle, OCP)**
           开闭准则是对设计模式的最基本的要求,简单来说就是说在设计出的接口需要支持可扩展,避免使用具体类
           来定义。一句话概括就是对修改是关闭,对扩展是支持的
      ** 迪米特准则 (Least Knowledge Principle, LKP)**
           迪米特准则也称之为最少知道原则,也就是各个接口或者类不需要知道其他接口的具体功能,只需要提供接
           口出来供调用者使用即可,至于具体的逻辑操作,对于调用者来说不需要关心。这也是为了减少模块之间的
           耦合
      ** 里氏代换准则(Liskov Substitution Principle,LSP)**
           里氏代换是在所有可以使用父类的地方可以通过子类来替换,子类在扩展父类的时候,不应该更改父类原
           有的功能,也是实现开闭原则的重要方式之一 

总结

     设计模式是为了更好的服务于我们的程序设计,在处理问题的时候,能够使用代码结构清晰,直观、可扩展的方式来
  完成,达到易读、可扩展、高内聚、低耦合的目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值