设计模式-写在前面的话

设计模式简介

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、少写坑、让代码更容易地被他人理解、保证代码可靠性。毫无疑问,设计模式于己于人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石脉络,如同大厦的结构一样。
- 反复使用:设计模式被使用太多了,比如一些框架源码和自己的代码当中都可能出现了很多模式,如大名鼎鼎的Java框架spring里面记忆中比较深刻的有模板模式,代理模式,单例模式,工厂模式等等。
- 多数人知晓:这个应该写过程序的都知道。
- 分类编目:就是说可以找到一些特征去划分这些设计模式,从而进行分类。
- 代码设计经验:也就是说设计模式,是为了指导设计而从前人经验中总结出来的写代码的套路。

设计模式分类

总体可分为3大类总共23种
- 创建型模式:共5种
工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式
- 结构型模式:共7种
适配器模式、装饰器模式、外观模式、桥接模式、组合模式、享元模式
- 行为型模式,共11种
策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式
- 其实还有两类,即并发性模式和线程池模式。

为什么要学习设计模式?

  • 少写坑:比如前期一个很简单的功能,但是由于系统当初设计的时候没有考虑这些需求的变化,导致”牵一发动全身”,随便改动一处,系统都会产生不可预估的风险;或者系统出现越来越臃肿,后期根本没法儿维护了。
  • 阅读源码:这一点的话就体现在阅读源码上了。比如spring的源码如果你没点设计模式的底子话,他那一套又一套的套路会把人绕晕的(虽然套路深,但的确写得好,深谙设计模式之道)。

设计模式六个基本原则

  • 单一职责原则:
    意思是每个类都只负责单一的功能,切不可太多,并且一个类应当尽量的把一个功能做到极致。否则当你去维护这个系统的时候,你会后悔你当初的决定。(一个类只有一个引起变化的原因)
  • 里氏替换原则LSP:
    在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立。如果一个软件实体使用的是一个子类对象的话,那么它一定不能够使用基类对象。里氏代换原则的程序表现就是:在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类。
  • 接口隔离原则ISP:
    使用多个隔离的接口,比使用单个接口要好。强调的是一个接口拥有的行为应该尽可能的小。
  • 依赖倒置原则:
    要依赖抽象,不要依赖具体类。
  • 最少知识原则(迪米特法则):
    不要让太多的类耦合在一起,免得修改系统中的一部分,会影响到其他的部分,如果许多类之间相互依赖,这个系统会变成一个易碎的系统,增加维护成本,也因为复杂而不易被其他人理解。
  • 开发-关闭原则:
    类应该对扩展开发,对修改关闭。这样的设计具有弹性可以应对改变,可以很好的应对改变的需求;如果是一有新需求写好的模块代码不停的去修改它,可能会出很多意外和bug。
  • 虽然有这些设计模式和原则,但我们也要根据自己的需求来,不一定要完全遵循,即使是强大如spring框架也做不到。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java设计模式是一组经过实践验证的面向对象设计则和模式,可以帮助开发人员解决常见的软件设计问题。下面是常见的23种设计模式: 1. 创建型模式(Creational Patterns): - 工厂方法模式(Factory Method Pattern) - 抽象工厂模式(Abstract Factory Pattern) - 单例模式(Singleton Pattern) - 型模式(Prototype Pattern) - 建造者模式(Builder Pattern) 2. 结构型模式(Structural Patterns): - 适配器模式(Adapter Pattern) - 桥接模式(Bridge Pattern) - 组合模式(Composite Pattern) - 装饰器模式(Decorator Pattern) - 外观模式(Facade Pattern) - 享元模式(Flyweight Pattern) - 代理模式(Proxy Pattern) 3. 行为型模式(Behavioral Patterns): - 责任链模式(Chain of Responsibility Pattern) - 命令模式(Command Pattern) - 解释器模式(Interpreter Pattern) - 迭代器模式(Iterator Pattern) - 中介者模式(Mediator Pattern) - 备忘录模式(Memento Pattern) - 观察者模式(Observer Pattern) - 状态模式(State Pattern) - 策略模式(Strategy Pattern) - 模板方法模式(Template Method Pattern) - 访问者模式(Visitor Pattern) 4. 并发型模式(Concurrency Patterns): - 保护性暂停模式(Guarded Suspension Pattern) - 生产者-消费者模式(Producer-Consumer Pattern) - 读锁模式(Read-Write Lock Pattern) - 信号量模式(Semaphore Pattern) - 线程池模式(Thread Pool Pattern) 这些设计模式可以根据问题的特点和需求来选择使用,它们提供了一些可复用的解决方案,有助于开发高质量、可维护且易于扩展的软件系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值