Java之旅之设计模式和架构

设计模式

设计模式是针对软件设计中常见问题的通用、可重用的解决方案。大致可分为三大类:

1. 创建型模式:关注对象的创建过程。

  • 单例模式:确保一个类只有一个实例,并提供一个访问它的全局点。
  • 工厂方法模式:定义一个接口用于创建对象,但让子类决定实例化的类。
  • 抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。
  • 建造者模式:将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。
  • 原型模式:通过复制现有的实例来创建新的实例,而不是通过构造函数创建。

2. 结构型模式:关注类和对象的组合。

  • 适配器模式:允许不兼容的接口之间的协作。
  • 桥接模式:将抽象部分与实现部分分离,使它们可以独立变化。
  • 组合模式:将对象组合成树形结构以表示部分-整体的层次结构。
  • 装饰器模式:动态地给一个对象添加一些额外的职责,而不改变其接口。
  • 外观模式:提供了一个统一的接口,用来访问子系统中的一群接口。
  • 享元模式:通过共享来有效支持大量细粒度的对象。
  • 代理模式:为其他对象提供一种代理以控制对这个对象的访问。

3. 行为型模式:关注对象之间的通信。

  • 责任链模式:允许多个对象处理请求,从而避免请求的发送者和接收者之间的耦合。
  • 命令模式:将请求封装为一个对象,从而允许用户对请求进行参数化、排队或记录。
  • 解释器模式:为语言创建解释器,用来解释该语言中的句子。
  • 迭代器模式:提供一种方法顺序访问一个聚合对象中各个元素,而不暴露其内部的表示。
  • 中介者模式:定义一个对象来封装一组对象之间的交互。
  • 备忘录模式:捕获一个对象的内部状态,并在该对象之外保存这个状态。
  • 观察者模式:当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。
  • 状态模式:允许对象在内部状态改变时改变其行为。
  • 策略模式:定义一系列算法,将每一个算法封装起来,并使它们可以互相替换。
  • 模板方法模式:在一个方法中定义一个算法的骨架,将一些步骤延迟到子类中实现。
  • 访问者模式:表示一个作用于某对象结构中的各元素的操作,它可以在不改变各元素的类的前提下定义作用于这些元素的新操作。

软件架构

软件架构是关于软件系统的结构、行为和属性的高级抽象,它显示了系统需求和构成组件之间的对应关系。以下是一些常见的软件架构风格:

1. 分层架构(Layered Architecture):将系统分为多个层次,每层负责不同的功能。
2. 客户端-服务器架构(Client-Server Architecture):客户端请求服务,服务器提供服务。
3. 微服务架构(Microservices Architecture):将应用程序作为一组小型服务构建,每个服务在自己的进程中运行,并通过轻量级的通信机制(通常是HTTP RESTful API)进行协作。
4. 模型-视图-控制器(MVC):将应用程序分为三个部分:模型(数据处理)、视图(用户界面)和控制器(用户交互)。
5. 事件驱动架构(Event-Driven Architecture):组件之间通过事件进行通信。
6. 面向服务架构(SOA):将应用程序的不同功能单元(称为服务)通过服务之间的接口和契约联系起来。
7. 微内核架构(Microkernel Architecture):有一个小的核心,其他功能作为插件实现。
8. 空间架构(Space-Based Architecture):基于分布式数据网格,通过分布式缓存实现高性能和可伸缩性。

你可能感兴趣的:(java学习之路,java,设计模式,架构)