Nomad

策略模式

模式动机 当系统需要动态切换算法或行为时,避免使用大量条件分支(如 if-else 或 switch)。策略模式将每个算法封装成独立类,使得算法可互换、扩展性更强。例如:电商促销(满减、折扣、赠品)、排序算法(快排、归并排序)的灵活切换。 模式定义 策略模式(Strategy Pattern):定义一系列算法,将每个算法封装成独立类,并使它们可以相互替换。策略模式让算法独立于使用它的客...

桥接模式

模式动机 对于有两个变化纬度(即两个变化原因)的系统,采用继承的方式来实现,会导致类的数量呈指数级增长,而且会导致类的耦合度过高,不利于系统的扩展和维护. 桥接模式将继承关系转换为关联关系,从而降低了类与类之间的耦合度,提高了系统的灵活性和可扩展性. 模式定义 桥接模式(Bridge Pattern)是一种结构型设计模式,它通过将抽象部分与实现部分分离,使它们可以独立地变化。 它是一...

HTTP协议--演变

HTTP/1.1(1996) 优点 简单:格式简单,易于理解 灵活和易于扩展:可以通过添加新的头部字段,方法和状态码来扩展协议.HTTP工作在应用层,下层协议可以变化和扩展 应用广泛和跨平台:HTTP的下层协议是TCP/IP,可以在任何支持TCP/IP的网络上使用 持久连接:HTTP/1.1 默认启用持久连接,允许在同一 TCP 连接上发送多个请求和响应,减少了连接建立和...

HTTP协议--缓存

HTTP为什么需要缓存 对于具有重复性的HTTP请求(例如部分GET,HEAD请求),在服务端没有修改数据的情况下,每次请求的结果是一样的,因此可以把[请求-响应]数据缓存在本地,避免访问服务器,提高性能 HTTP缓存有两种实现方法,分别是强制缓存和协商缓存 强制缓存 强制缓存通过 Cache-Control 或 Expires 响应头实现。浏览器或客户端在缓存有效期内直接从本地读取资源...