首页 > 其他分享 >《图解设计模式》 第一部分,适应设计模式

《图解设计模式》 第一部分,适应设计模式

时间:2024-11-04 16:42:26浏览次数:1  
标签:图解 string 适配器 适应 void 设计模式 banner public

第一章 Iterator模式 -- 一个一个遍历

为什么要使用 Iterator模式?

正常遍历我们使用 for 循环即可,为什么要在集合引入 Iterator 这个角色呢?

eg

while(it.hasNext()){
  Book book = (Book) it.next();
  System.out.println(book.getName());
}

这里的 while 循环并不依赖于 BookShelf 的实现。
关键就是为了 在开发者优化 BookShelf 的时候,可以不修改其他地方的代码。
就比如是这个 while 循环。
若没有 实现 Iterator ,直接使用内部数组,遇到优化BookShelf的情况(比如更换为 Vector,或者其他集合),
就需要花费经历去改动 许多位置的代码。

第二章 Adapter模式 -- 价格 "适配器" 以便复用

示例程序1 (使用 继承 的适配器)

public class printBanner extends Banner implements Print{
  public PrintBanner(String string){
    super(string);
  }

  public void printWeak(){
    showWithParent();
  }

  public void printStrong(){
    showWithAster();
  }
}

printBanner 就像一个转换器一样,将 Print的接口方法转换为 Banner的方法。

示例程序2 (使用 委托 的适配器)

public class PrintBanner extends Print(){
  private Banner banner;
  publci PrintBanner(String string){
    this.banner = new Banner(string);
  }

  public void printWeak(){
    banner.showWithParen();
  }

  public void printStrong(){
    banner.showWithAster();
  }
}

什么时候是和适配器模式?

当我们拥有一个现有的类,它经过长时间的考验 问题不多,不需要舍弃,而且希望减少改动就能使用的时候。这个是和就是和用适配器模式了。

标签:图解,string,适配器,适应,void,设计模式,banner,public
From: https://www.cnblogs.com/dasuxd/p/18525546

相关文章

  • 设计模式之单例模式
    设计模式之单例模式单例模式是23种常用设计模式中最简单的设计模式之一,它提供了一种创建对象的方式,确保只有单个对象被创建。这个设计模式主要目的是想在整个系统中只能出现类的一个实例,即一个类只有一个对象。单例模式#include<string.h>#include<iostream>usingstd::co......
  • Spring7中事务传播机制形象图解
    一、Spring的7种事务传播机制Spring事务传播机制是指在多个事务方法相互调用的情况下,事务如何在方法之间进行传播和管理的机制。通过事务传播机制,可以控制事务的范围和行为,保证多个事务方法的一致性和完整性。Spring提供了七种事务传播行为,分别是:REQUIRED、SUPPORTS、MANDATORY......
  • [快速阅读] 自适应中值滤波及保守滤波在去除椒盐噪音或脉冲噪音上的应用。
    这两个滤波器也是很久前就看过的,最近偶然翻起那本比较经典的matlab数字图像处理(冈萨雷斯)书,里面也提到了这个算法,觉得效果还行,于是也还是稍微整理下。为了自己随时翻资料舒服和省事省时,这个算法的原理我们还是把他从别人的博客里搬过来吧:摘自:图像处理基础(2):自适应......
  • 微服务设计模式:节流模式(Throttling Pattern)
    微服务设计模式:节流模式(ThrottlingPattern)定义节流模式(ThrottlingPattern)是一种控制资源使用速率的设计模式,广泛应用于云计算和微服务架构中,以防止服务过载和资源耗尽。它通过限制客户端请求的数量,保证系统稳定性和可用性。结构节流模式的核心组件包括:请求过滤器:拦......
  • LongVU :Meta AI 的解锁长视频理解模型,利用自适应时空压缩技术彻底改变视频理解方式
    MetaAI在视频理解方面取得了令人瞩目的里程碑式成就,推出了LongVU,这是一种开创性的模型,能够理解以前对人工智能系统来说具有挑战性的长视频。研究论文"LongVU:用于长视频语言理解的时空自适应压缩"提出了一种革命性的方法,使人工智能能够有效地处理和理解长达几分钟甚至一......
  • c#-设计模式之观察者模式
    c#-设计模式之观察者模式概念指多个对象之间存在一种一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。该模式又称为包括发布-订阅(Publish/Subscribe)模式,该模式是行为型模式。结构图角色Subject(观察目标):观察目标是指被观察的对象,一般......
  • 设计模式之——代理模式
    一、代理模式概述在C++中,代理模式是一种结构型设计模式,它为其他对象提供一种代理,从而控制对这个对象的访问。代理模式的作用主要体现在以下几个方面:职责清晰:真实的角色即实现实际的业务逻辑,不用关心其他非本职的事务,通过后期的代理来完成事务,使得编程简洁清晰。例如在视频......
  • 【设计模式系列】原型模式(十一)
    一、什么是原型模式原型模式(PrototypePattern)是一种创建型设计模式,它使得一个对象可以复制自身,从而创建一个与自己属性一致的新对象,而无需知晓对象创建的细节。这种模式允许动态地增加对象的数量,并通过复制现有的对象来提高效率,特别是当直接创建对象的代价较大时(例如,涉及复杂......
  • 【图解版】力扣第70题:爬楼梯
    推理出状态表达式f(5)表示到达第5层,所有可能的方法数。到达第5层,有可能是从第4层走一步上来,也有可能是从第3层走两步上来。所以我们可以慢慢延伸,画出上面......
  • 隧道视野 | 埃尔德·沙菲尔:当人们疲于应付诸多问题时,他们就不再试图解决所有的问题,而
    注:本文为几篇关于隧道视野的文章合辑。什么是“隧道视野(TunnelVision)”?如何应对?原创LouisaWW的神秘学笔记本2023年07月24日12:49湖南TunnelVision,隧道视野(视野狭窄)“我们看到的并不是事物本来的样子,而是我们自己本来的样子。”部分观点不太全面,请带着“批判性......