软件开发的套路:设计模式简介

11人浏览 / 0人评论 / 添加收藏

软件开发过程中,我们常常会涉及到设计模式的问题。有的人可能写了很多的代码,但是对于设计模式并没有太多的观念,也并不重视它。它有些像武术中的套路,你遇到不同类型的问题不同场景就可以使用不同的设计模式。你可能在无形中用到了它,但你并没有过多的感受。我们来看看设计模式的定义。

‌设计模式是软件开发中针对常见问题的、经过验证的最佳解决方案模板,它能提升代码的可复用性、可维护性和灵活性,其经典分类和概念由Erich Gamma等四位专家(GoF)在《设计模式:可复用面向对象软件的基础》一书中系统提出。

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

所以,综上所述,学好设计模式是有必要的。那么使用设计模式究竟有哪些好处呢?
1、提供了一种共享的设计词汇和概念,使开发人员能够更好地沟通和理解彼此的设计意图。
2、提供了经过验证的解决方案,可以提高软件的可维护性、可复用性和灵活性。
3、促进了代码的重用,避免了重复的设计和实现。
4、通过遵循设计模式,可以减少系统中的错误和问题,提高代码质量。

其核心设计原则:
要理解和用好设计模式,需要遵循一些基本的面向对象设计原则。‌‌
1、开闭原则‌:对扩展开放,对修改关闭。‌‌
2、单一职责原则‌:一个类只应有一个引起它变化的原因。‌‌
3、依赖倒置原则‌:针对接口编程,依赖于抽象而非具体实现。‌‌
4‌、接口隔离原则‌:使用多个专门的接口,而非一个庞大臃肿的总接口。‌‌
5、迪米特法则(最少知道原则)‌:一个对象应尽可能少地了解其他对象。‌‌
6、合成复用原则‌:优先使用对象组合,而非继承。‌‌

其包含的三大类型:
1、创建型模式 (Creational Patterns)‌
‌核心关注点‌:‌对象的创建机制‌,将对象的创建与使用分离,使系统在创建对象时更灵活。‌‌
‌包括‌:单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。‌‌

‌2、结构型模式 (Structural Patterns)‌
‌核心关注点‌:‌类或对象的组合方式‌,旨在通过不同的结构组合,构建出更大、更灵活、可复用的结构。‌‌
‌包括‌:适配器模式、桥接模式、装饰器模式、组合模式、外观模式、享元模式、代理模式。‌‌

‌3、行为型模式 (Behavioral Patterns)‌
‌核心关注点‌:‌对象之间的通信与职责分配‌,描述对象如何协作以及如何分配责任。‌‌
‌包括‌:责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式。‌‌

当然,我们还会讨论另一类设计模式:J2EE 设计模式。

序号 模式 & 描述 包括
1 创建型模式
这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。
  • 工厂模式(Factory Pattern)
  • 抽象工厂模式(Abstract Factory Pattern)
  • 单例模式(Singleton Pattern)
  • 建造者模式(Builder Pattern)
  • 原型模式(Prototype Pattern)
2 结构型模式
这些模式关注对象之间的组合和关系,旨在解决如何构建灵活且可复用的类和对象结构。
  • 适配器模式(Adapter Pattern)
  • 桥接模式(Bridge Pattern)
  • 过滤器模式(Filter、Criteria Pattern)
  • 组合模式(Composite Pattern)
  • 装饰器模式(Decorator Pattern)
  • 外观模式(Facade Pattern)
  • 享元模式(Flyweight Pattern)
  • 代理模式(Proxy Pattern)
3 行为型模式
这些模式关注对象之间的通信和交互,旨在解决对象之间的责任分配和算法的封装。
  • 责任链模式(Chain of Responsibility Pattern)
  • 命令模式(Command Pattern)
  • 解释器模式(Interpreter Pattern)
  • 迭代器模式(Iterator Pattern)
  • 中介者模式(Mediator Pattern)
  • 备忘录模式(Memento Pattern)
  • 观察者模式(Observer Pattern)
  • 状态模式(State Pattern)
  • 空对象模式(Null Object Pattern)
  • 策略模式(Strategy Pattern)
  • 模板模式(Template Pattern)
  • 访问者模式(Visitor Pattern)
4 J2EE 模式
这些设计模式特别关注表示层。这些模式是由 Sun Java Center 鉴定的。
  • MVC 模式(MVC Pattern)
  • 业务代表模式(Business Delegate Pattern)
  • 组合实体模式(Composite Entity Pattern)
  • 数据访问对象模式(Data Access Object Pattern)
  • 前端控制器模式(Front Controller Pattern)
  • 拦截过滤器模式(Intercepting Filter Pattern)
  • 服务定位器模式(Service Locator Pattern)
  • 传输对象模式(Transfer Object Pattern)

全部评论