关于设计模式点滴Start

背景:
      每天项目Spring家族应用、CRUD,如何在完成业务场景中,真正按照OOP思想(封装,继承,多态),增加代码的质量,可读性、易维护性、重用性、灵活性和扩展性。

解决方案:
       详读Spring源码,软件设计模式。以下为记录设计模式的一些感悟。

3W·H解读设计模式

  1. What是什么?
    模式:源于建筑领域,人们为了解决某类重复出现问题,而总结归纳出来的有效解决方案。
    GoF将模式的概念引入软件工程领域,软件模式也因此诞生。软件模式并非仅限于设计模式,还包括架构模式、分析模式和过程模式等,实际上,在软件开发生命周期的每一个阶段都存在着一些被认同的模式。
    设计模式为:代码设计经验的总结。

  2. Why为什么要用?
    软件设计模式为了代码灵活性、可重用性、易读性、易维护性、易扩展性。

  3. Where在哪里用?
    面向对象编程,简单的根据设计模式的六大基本原则来判别,违反其中的原则即可考虑用,六大原则如下:

    1. 开闭原则(总原则)。一个实体,对扩展开放,对修改关闭。抽象化(接口)是开闭原则的关键,多态。
    2. 单一职责原则。一个类而言,应该只有一个引起它变化的原因。是实现高内聚、低耦合基石。
    3. 里氏替换原则。能使用基类的地方子类也可以使用。是实现开闭原则的重要方式之一。
    4. 依赖倒置原则。针对接口编程,而不是针对实体编程。
    5. 接口隔离原则。每个接口应承担一种相对独立的角色,只做该干的事。
    6. 迪米特法则。一个软件实体应当尽可能少地与其他实体发生相互作用。
    
  4. How怎么用?
    Gof中设计模式有23种,都是对六大规则应用的一种体现,注意OOP分析,不要局限现实生活中实体的对象去抽象化定义一个class ,实体的某些属性也可抽象为一个class
    具体分类:
    1)根据其目的(设计模式是用来做什么的)可分为创建型(Creational),结构型(Structural)和行为型(Behavioral)三种:
    • 创建型模式主要关注创建对象。
    • 结构型模式主要关注类或对象的组合,注意组合优先于继承
    • 行为型模式主要用于描述对类或对象怎样交互和怎样分配职责,关注对象之间的通信。
    2)根据范围,即模式主要是用于处理类之间关系还是处理对象之间的关系,可分为类模式和对象模式两种:
    • 类模式: 处理类和处理类的子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是属于静态的。
    • 对象模式:处理对象间的关系,这些关系在运行时刻变化,更具动态性。
    23种模式,将从标识(定义),问题陈述(实际的问题)和解决方案(如何实现),效果(有啥优点)、其他模式的类比者几个维度去解析。


不积跬步无以至千里,每天前进一小步

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值