设计模式简介

设计模式是解决常见编程问题的标准化方案,它提供了一种通用的语言,使得代码更易理解和复用。设计模式包括创建型、结构型和行为型模式,遵循六大原则如开闭原则、里氏代换原则等,以增强软件的灵活性、可维护性和可扩展性。
摘要由CSDN通过智能技术生成

设计模式的描述,或者来源

设计模式在我的理解就是风格和解决问题的思路。

把代码抽象成我们的生活,跟不同的代码打交道就相当于跟不同的人去交流,如果我们一个是说普通话,一个说方言,沟通起来是相对较难的,都说普通话方便理解。--风格

写代码的过程其实就是解决问题的过程,无论是网站还是程序,大多是其实就是处理数据,传输数据。相对于我们从0开始解决一个功能,借鉴别人的思路去解决相同类型的问题更加的快捷,方便。

设计模式的优点

  • 提供了程序之间共享的概念,更好的理解彼此之间的意图
  • 有经过验证的解决方案,可以提高软件的可维护行,可复用性和领过行
  • 促进代码的重复利用
  • 遵循设计模式可以减少系统中的错误和问题,提高代码质量。

设计模式的划分

  1. 创建型模式
    1. 工厂模式
    2. 抽象工厂模式
    3. 单例模式
    4. 建造者模式
    5. 原型模式
  2. 结构型模式
    1. 适配器模式
    2. 桥接模式
    3. 过滤器模式
    4. 组合模式
    5. 装饰器模式
    6. 外观模式
    7. 享元模式
    8. 代理模式
  3. 行为型模式
    1. 责任链模式
    2. 命令模式
    3. 解释器模式
    4. 迭代器模式
    5. 中介者模式
    6. 备忘录模式
    7. 观察者模式
    8. 状态模式
    9. 空对象模式
    10. 策略模式
    11. 模版模式
    12. 访问者模式
  4. J2EE 型模式
    1. mvc 模式
    2. 业务代表模式
    3. 组合实体模式
    4. 数据访问模式
    5. 前端控制器模式
    6. 拦截过滤器模式
    7. 服务定位模式
    8. 传输对象模式

设计模式的六大原则

  • 开闭原则
    • 我的理解就是提倡扩展,关闭修改。怎么去理解这句话,从做什么,怎么做,结果是什么的方向去理解。程序需要拓展的时候(做什么),不能去修改原有的代码,(怎么做)实现一个热插拔的效果(结果是什么)。什么是热插拔?这是电气里面的概念,说的是通电的情况下我们能做到设备的安装和移除,如何提现到我们程序里面就是,我们做程序的拓展的时候,拓展的内容要能用,而已不影响之前的功能。目的使程序的扩展性好,易于维护和升级。具体使用接口和抽象类去实现这样的效果。
  • 里氏代换原则
    • 子类必须能够替代他们的父类(基类),并且经过替换之后,代码能够正常的工作。举例程序中每一个类型A的对象a1,都存在一个类型B的对象b1,在所有针对B编写的程序中用a1去替换b1,程序的行为和功能都不变,可以称为A是T的子类型,这样还不理解的话就是数学中的经典案例,正方形和长方形,正方形就是长宽相等的长方形,我们用正方形去替换长方形,合不合理,用子类去替换父类是不是也就不会有什么问题。
  • 依赖倒转原则(后期要在修改,目前我是这样理解的)
    • 我自己是这样理解的,越上层的东西越是概念化(抽象)的东西,具体的实现是依赖于抽象的,不是凭空产生的,要有一定的逻辑。
  • 接口隔离原则
    • 就是使用多个隔离的接口,降低类之间的耦合,不同的类不是继承与不同的接口,保证接口之间的隔离,等同于保证类之间的隔离
  • 迪米特法原则-最少知道原则
    • 一个实体尽量减少与其他实体之间发生相互作用,使用系统功能模块相对独立
  • 合成复用原则
    • 尽量使用合成/聚合的方式,而不是使用继承

合成复用原则解释:我刚开始的时候不太清楚-合成/聚合-的概念,我这里做了个解释。既然他们放在一起比较,说明在使用的时候,关于这一点我们可以从理解继承的概念出发去理解,合成/聚合。继承就是子类继承父类,能完整重用父类的属性和方法,并且能扩展自身的属性和方法。那么从这一点出发,那合成/聚合的意思不就是,复用代码和拓展自身的功能,既然如此为什么不使用继承而是选择合成/聚合,那肯定是继承有缺点了!继承的缺点是1.无法通过继承达到多个类代码的重用。2.父类的方法子类无条件继承,很容易造成方法污染。3.从父类继承的方法,是一种静态的复用。不能再运行时发生改变,不够灵活。而且使用继承必须满足两个条件:1.父类中所有的属性和方法,在子类中都适用。2.子类不需要再去重用别类中的代码。如果不能满足这两个条件,那么就应该使用聚合/组合关系去替代继承,来达到代码的复用。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值