杨充_社区达人页

个人头像照片
杨充
已加入开发者社区2239

勋章 更多

个人头像照片
专家博主
专家博主
个人头像照片
星级博主
星级博主
个人头像照片
技术博主
技术博主
个人头像照片
开发者认证勋章
开发者认证勋章
个人头像照片
江湖新秀
江湖新秀

成就

已发布193篇文章
20条评论
已回答0个问题
0条评论
已发布0个视频
github地址

我关注的人 更多

技术能力

兴趣领域
  • Java
  • Python
  • 前端开发
  • 容器
擅长领域
技术认证

暂时未有相关云产品技术能力~

从事Android开发,滴滴出行

暂无精选文章
暂无更多信息

2025年06月

  • 06.04 17:28:11
    发表了文章 2025-06-04 17:28:11

    高性能图片优化方案

    本文全面解析了高性能图片优化方案,涵盖图片加载、内存管理、压缩技术及缓存设计等核心内容。首先介绍了图片基础概念,如内存占用计算、Bitmap创建流程及三方库加载逻辑。接着深入探讨了图片尺寸与质量压缩方法,包括双线性采样和分片加载等技术。 文章还详细讲解了内存缓存设计,特别是LRU缓存的实现与注意事项,并对比不同Android版本对Bitmap管理的差异。此外,提供了多种优化策略,如减少PNG使用、圆角图片处理、图片旋转修正、保存至相册、统一图片域名以及H5图片加载优化等。最后,通过具体案例和代码示例,帮助开发者在实际项目中有效降低内存消耗、提升图片加载性能。

2025年05月

  • 05.22 18:41:06
    发表了文章 2025-05-22 18:41:06

    01.数组深入浅出分析

    本文深入剖析数组这一基础数据结构,涵盖设计原理、优缺点、使用场景及与容器的对比。内容包括数组的内存布局、一维/二维数组定义、复杂度分析,以及线性表和非线性表的区别。同时探讨数组插入、删除操作的低效原因及优化方法,并解析为何数组从0开始索引的历史和技术原因。最后对比数组与容器(如ArrayList)的特点,帮助开发者根据场景选择合适的数据结构。适合初学者全面了解数组,也供进阶者深入研究其底层机制。
  • 05.20 10:07:13
    发表了文章 2025-05-20 10:07:13

    12.项目重构演进之路

    本文详细探讨了项目重构的演进之路,涵盖背景、要求、问题、目的及技术手段等多方面内容。针对大型与小型重构,分别提供了具体实践方法,如分层、模块化、解耦等,并强调通过单元测试保证重构质量。同时,列举常见代码问题(如臃肿类、复杂判断)及优化方式,避免过度设计或乱用模式。最后提出架构设计三大原则:合适优于世界领先、简单优于复杂、演进优于一步到位,为实际开发提供指导。适合希望提升代码质量和架构能力的开发者参考。
  • 05.09 18:29:08
    发表了文章 2025-05-09 18:29:08

    11.多用组合和少继承

    本文探讨了面向对象编程中“组合优于继承”的原则,通过多个案例分析了组合与继承的优劣。首先以绘图应用程序为例,展示了使用继承实现多形状时类数量激增的问题,而通过组合可以灵活地扩展功能。接着通过不同鸟类程序案例,揭示了复杂继承关系对代码可维护性和可读性的负面影响,并提出用接口和组合替代传统继承的设计思路。最后总结了组合与继承在实际开发中的适用场景及权衡点,强调应根据具体需求选择合适的设计方式,避免过度依赖继承或组合。文末还提供了丰富的学习资源链接,涵盖设计模式、Java进阶、网络协议等多个领域,适合开发者深入研究。

2025年04月

  • 04.24 19:57:52
    发表了文章 2025-04-24 19:57:52

    10.接口而非实现编程

    本文详细介绍了“基于接口而非实现编程”的原则及其应用。首先阐述了接口编程的核心思想,即依赖抽象而非具体实现,以提高代码的灵活性和可维护性。接着通过图片存储案例分析了业务拓展时可能遇到的问题,并展示了如何通过定义抽象接口解决这些问题。同时探讨了定义接口的具体场景,如模块间通信、多态性、框架开发等,并强调了接口设计时需注意的事项,包括避免暴露实现细节和确保接口通用性。最后总结指出,接口原则旨在降低耦合性、提升扩展性,但并非所有场景都需要定义接口,应根据实际需求权衡使用。
  • 04.14 19:34:05
    发表了文章 2025-04-14 19:34:05

    09.接口vs抽象类比较

    本文详细对比了接口与抽象类的区别及应用场景,涵盖两者的基本概念、特性以及设计思想。通过具体案例分析,如日志记录和过滤器功能,阐明抽象类适用于代码复用(is-a关系),而接口侧重解耦和行为定义(has-a关系)。此外,还探讨了如何在不支持接口或抽象类的语言中模拟其实现,并总结了选择两者的判断标准。文章结合实际开发场景,提供了清晰的指导,帮助开发者更好地理解与应用这两种核心面向对象概念。

2025年03月

  • 03.24 18:26:45
    发表了文章 2025-03-24 18:26:45

    08.面向对象的特性

    本文详细介绍了面向对象编程的核心特性:封装、抽象、继承和多态。封装通过限制访问保护数据,提高代码可维护性和易用性;抽象隐藏实现细节,关注功能本身,增强代码扩展性;继承表示类间的“is-a”关系,解决代码复用问题,但需谨慎使用以避免复杂性;多态允许子类替换父类,提升代码扩展性和复用性,是设计模式的基础。此外,文章还探讨了面向对象分析与设计(OOA/OOD)、UML建模语言以及这些特性在实际编程中的应用。最后提供了多个学习资源链接,涵盖Java、C/C++、Android开发及算法等内容,适合开发者深入学习面向对象思想及相关技术。
  • 03.19 19:09:12
    发表了文章 2025-03-19 19:09:12

    07.迪米特原则介绍

    本文详细介绍了迪米特原则(Law of Demeter),包括其定义、核心思想及实际应用。迪米特原则强调类之间应保持低耦合,通过限制对象间的直接交互,减少依赖关系,从而提高代码的可维护性和复用性。文章通过案例分析(如集团公司员工管理和体育课场景)展示了如何遵循该原则优化设计,避免不必要的类依赖。同时探讨了“高内聚、松耦合”的概念及其重要性,并总结了迪米特原则的优点与潜在缺点。最后列举了外观模式、中介者模式等符合迪米特原则的设计模式,帮助读者深入理解其应用场景。
  • 03.11 18:57:33
    发表了文章 2025-03-11 18:57:33

    06.依赖倒置原则介绍

    依赖倒置原则是面向对象设计六大原则之一,强调高层模块不应依赖低层模块,两者应依赖于抽象。通过依赖接口或抽象类而非具体实现,降低模块耦合度,提升系统灵活性和可维护性。本文详解该原则的概念、目标、思想及其实现方式(如依赖注入),并结合多数据库操作、用户购买家电、发送消息等实际案例,深入探讨其应用与优缺点。
  • 03.06 19:42:00
    发表了文章 2025-03-06 19:42:00

    05.接口隔离原则介绍

    接口隔离原则(ISP)是SOLID原则之一,强调客户端不应依赖于它们不需要的接口。通过将庞大而臃肿的接口拆分为更小、更具体的接口,确保每个接口只包含客户端真正需要的方法,从而提高代码的可维护性和灵活性。本文详细介绍了接口隔离原则的概念、核心思想、实现方式及案例分析,并对比了其与单一职责原则的区别。关键点包括:接口应精简、独立且可扩展,避免强迫实现不必要的方法,减少系统的耦合性。
  • 03.05 12:29:21
    发表了文章 2025-03-05 12:29:21

    04.里式替换原则介绍

    里式替换原则(LSP)是面向对象设计的重要原则之一,确保子类可以无缝替换父类而不破坏程序功能。本文详细介绍了LSP的定义、背景、理解方法及应用场景,通过电商支付和鸟类飞行案例展示了如何遵循LSP,并分析了其优缺点。LSP强调子类应保持父类的行为一致性,有助于提高代码的可扩展性、可维护性和可重用性,但也可能导致过度设计。最后,对比了LSP与多态的区别,明确了LSP作为设计原则的重要性。

2025年02月

  • 02.13 09:42:09
    发表了文章 2025-02-13 09:42:09

    03.开闭原则详细介绍

    本文详细介绍了面向对象设计中的开闭原则(OCP),即软件实体应对扩展开放、对修改关闭。文章通过问题思考、背景分析、实现方式及案例教学,深入探讨了如何在实际开发中应用这一原则,以提高代码的可维护性和扩展性。文中还结合图形绘制和银行业务两个具体案例,展示了如何通过抽象类、接口、策略模式等技术手段实现开闭原则。最后总结了开闭原则的优缺点,并强调了其在设计模式中的重要地位。

2024年12月

  • 12.26 09:50:01
    发表了文章 2024-12-26 09:50:01

    02.单一职责原则详解

    单一职责原则(SRP)是面向对象设计的重要原则,强调一个类或模块应仅负责完成一个特定的职责或功能。通过将复杂的功能分解为多个粒度小、功能单一的类,可以提高系统的灵活性、可维护性和可扩展性。本文详细介绍了如何理解单一职责原则,包括方法、接口和类层面的应用,并通过具体例子解释了其优势和判断标准。此外,还探讨了在实际开发中如何平衡类的设计,避免过度拆分导致的复杂性增加。

2024年11月

  • 11.25 09:33:10
    发表了文章 2024-11-25 09:33:10

    16.迭代器模式设计思想

    本文详细介绍了迭代器模式的设计思想、原理、结构及应用场景,通过Java代码示例解析了迭代器模式的具体实现过程,并讨论了其优缺点及适用环境。迭代器模式通过提供统一的遍历接口,简化了集合对象的访问,支持多种遍历方式,同时保持了良好的封装性和灵活性。文章还提供了丰富的资源链接,帮助读者深入理解和应用设计模式。
  • 11.20 08:46:08
    发表了文章 2024-11-20 08:46:08

    15.模版模式设计思想

    模版模式是一种行为设计模式,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中实现。这种方式让子类可以在不改变算法结构的情况下重新定义算法的某些特定步骤。文章详细介绍了模版模式的基础概念、应用场景、实现原理及优缺点,并通过具体案例深入解析了模版模式的使用方法。适合初学者和有一定经验的开发者深入学习。
  • 11.14 20:19:25
    发表了文章 2024-11-14 20:19:25

    14.策略者模式设计思想

    策略模式是一种行为型设计模式,用于定义一系列可互换的算法,并使它们可以独立于使用它们的客户端而变化。本文档详细介绍了策略模式的基础概念、原理、结构及应用案例,包括折扣计算、文件排序等实际场景,帮助读者深入理解策略模式的实现和优势。此外,还对比了策略模式与其他设计模式(如状态模式、模板模式)的区别,并提供了相关代码示例。适合初学者和有一定经验的开发者参考。
  • 11.13 09:43:09
    发表了文章 2024-11-13 09:43:09

    13.观察者模式设计思想

    本文详细介绍了观察者模式的设计思想,包括其定义、实现方式、优缺点及应用场景。通过微信公众号的例子,阐述了如何使用观察者模式实现对象间的依赖关系,确保一个对象状态改变时能自动通知其他对象。文章还提供了观察者模式的结构图和时序图,帮助读者更好地理解和应用这一设计模式。
  • 11.11 20:00:55
    发表了文章 2024-11-11 20:00:55

    12.享元模式设计思想

    享元模式是一种用于性能优化的设计模式,通过共享相同或相似对象来减少内存占用。本文档详细介绍了享元模式的基础概念、实现原理、应用场景及优缺点,并通过具体例子如Integer、String、线程池和Handler等展示了其实际应用。此外,还探讨了享元模式与其他设计模式的结合使用,以及在休闲棋类和文本编辑器中的应用。适合需要优化系统性能和资源利用率的开发者参考。
  • 11.08 19:15:04
    发表了文章 2024-11-08 19:15:04

    11.组合模式设计思想

    本文详细介绍了组合模式的设计思想和实现方法,涵盖组合模式的基础概念、实现步骤、实例演示、实现方式、优缺点分析等内容。通过具体的代码案例,展示了如何使用组合模式来处理具有层次结构的对象,如文件系统和购物清单,使客户端可以一致地处理单个对象和组合对象。文章还探讨了透明式和安全式组合模式的区别,并提供了设计建议和适用场景。适合初学者和有一定经验的开发者阅读。
  • 11.06 19:46:13
    发表了文章 2024-11-06 19:46:13

    10.桥接模式设计思想

    本文介绍了桥接模式的设计思想和实现方法。桥接模式通过将抽象部分与实现部分分离,使它们可以独立变化,解决了多层继承带来的复杂性和耦合性问题。文章详细讲解了桥接模式的由来、定义、应用场景和实现步骤,并通过具体实例演示了如何在支付场景中使用桥接模式。此外,还讨论了桥接模式的优缺点及其适用环境,提供了丰富的代码示例和进一步学习的资源链接。
  • 11.05 17:11:51
    发表了文章 2024-11-05 17:11:51

    09.外观模式设计思想

    外观模式设计思想:为了解决软件系统中的复杂性和耦合性问题,外观模式提供了一组统一的接口,简化客户端与子系统的交互。主要内容包括外观模式的基础、实现、实例演示、应用场景、优缺点及适用环境。通过创建外观类,将复杂系统的内部实现细节隐藏起来,只暴露出简化的接口给客户端,从而降低耦合度,提高系统的可维护性和可扩展性。[更多内容](https://yccoding.com/)
  • 11.04 08:46:31
    发表了文章 2024-11-04 08:46:31

    08.装饰者模式设计思想

    装饰者模式是一种设计模式,用于在不修改原始类的情况下动态地给对象添加新功能。本文档详细介绍了装饰者模式的基础概念、实现方法、应用场景及优缺点。通过具体的咖啡示例和Java I/O流中的应用,展示了装饰者模式的灵活性和实用性。此外,还探讨了半透明装饰者模式的概念及其在实际开发中的应用。适合初学者和有一定经验的开发者学习。

2024年10月

  • 10.31 08:59:47
    发表了文章 2024-10-31 08:59:47

    07.适配器模式设计思想

    适配器模式是一种结构型设计模式,用于将不兼容的接口转换为可兼容的接口,使原本不能一起工作的类可以协同工作。本文详细介绍了适配器模式的基础、实现方式(类适配器和对象适配器)、应用场景(如封装有缺陷的接口、统一多个类的接口、替换依赖的外部系统等)以及优缺点。通过具体案例(如读卡器适配、播放器适配)和实际开发中的应用(如数据库适配器、日志框架适配器),帮助读者深入理解和应用适配器模式。
  • 10.30 10:47:02
    发表了文章 2024-10-30 10:47:02

    06.动态代理设计模式

    本文详细介绍了动态代理设计模式,包括其必要性、概念、实现方式及案例分析。动态代理允许在运行时动态创建代理对象,增强代码复用性和灵活性,减少类膨胀。文章通过对比静态代理,深入解析了动态代理的实现机制,如基于接口和类的动态代理,以及其在Retrofit中的应用。同时,讨论了动态代理的优势和潜在问题,如性能开销和调试难度。最后,提供了丰富的学习资源链接,帮助读者进一步理解和掌握动态代理。
  • 10.24 22:54:28
    发表了文章 2024-10-24 22:54:28

    05.静态代理设计模式

    《静态代理设计模式》详细介绍了静态代理的基本概念、原理与实现、应用场景及优缺点。主要内容包括静态代理的由来、定义、使用场景、实现方式、结构图与时序图,以及其在降低耦合、保护对象权限等方面的优势。同时,文章也指出了静态代理的局限性,如缺乏灵活性、难以复用、难以动态添加功能等,并介绍了动态代理如何弥补这些不足。最后,通过多个实际案例和代码示例,帮助读者更好地理解和应用静态代理模式。
  • 10.22 20:16:49
    发表了文章 2024-10-22 20:16:49

    04.原型模式设计思想

    本文详细介绍了原型模式的设计思想,包括其定义、应用场景、实现原理及优缺点。通过邮件复制的例子,阐述了原型模式如何通过克隆现有对象来创建新对象,从而提高性能和减少代码复杂度。文章还对比了原型模式与工厂模式的区别,并讨论了深克隆和浅克隆的实现方式。最后,总结了原型模式在特定场景下的应用价值和局限性。
  • 10.21 20:15:18
    发表了文章 2024-10-21 20:15:18

    03.建造者模式设计思想

    本文详细介绍了建造者模式的设计思想及其应用场景。主要内容包括建造者模式的由来、定义、适用场景及思考,通过实例讲解了如何使用建造者模式解决复杂对象的创建问题。文章还对比了建造者模式与工厂模式的区别,并分析了建造者模式的优缺点。最后,提供了多个相关资源链接,帮助读者深入理解和应用设计模式。
  • 10.17 09:49:49
    发表了文章 2024-10-17 09:49:49

    02.工厂模式设计思想

    本文档详细介绍了工厂模式设计思想,包括简单工厂、工厂方法和抽象工厂三种类型。简单工厂通过参数返回不同类的实例,适合对象较少的场景;工厂方法通过定义抽象工厂接口,由子类实现具体对象的创建,增强扩展性;抽象工厂则能创建多个产品族,适用于产品间有依赖关系的情况。文档还通过咖啡店点餐系统案例,展示了三种模式的应用及优缺点,帮助读者理解和选择合适的工厂模式。
  • 10.14 20:41:56
    发表了文章 2024-10-14 20:41:56

    01.单例模式设计思想

    本文详细介绍了单例模式的设计思想及其应用。首先阐述了单例模式的基本概念、特点与定义,并探讨其适用场景与常见问题。接着深入分析了为何使用单例模式,包括处理资源访问冲突和表示全局唯一类。随后详细讲解了几种常见的单例实现方式,如饿汉式、懒汉式、双重检查锁定、静态内部类及枚举等,对比了各自优缺点。最后讨论了单例模式可能带来的问题,如对OOP不友好、隐藏依赖关系、扩展性差等,并提出了一些替代解决方案。文章内容丰富,适合希望深入了解单例模式及其应用的读者。

2024年08月

2024年07月

  • 07.24 17:37:34
    发表了文章 2024-07-24 17:37:34

    01.计算机组成原理和结构

    计算机组成原理涵盖底层硬件知识与冯·诺依曼体系结构,包括CPU、内存、I/O设备等硬件组成,强调理论与实践结合。冯·诺依曼架构定义了存储程序计算机,涉及运算器、控制器、存储器及I/O设备,影响现代计算机设计。学习时需理解数据交互、流动与控制层面,掌握控制器、存储器、运算器工作原理。计算机组成原理不仅关注硬件细节,如数字电路和数据表示,还探讨软件与硬件交互,如编译过程和操作系统功能。学习方法建议通过提问串联知识点、以教带学及编写示例程序验证理论,旨在全面理解计算机运作机制。

2024年05月

  • 03.19 20:42:48
    发表了文章 2024-03-19 20:42:48

    ProtoBuf-gRPC实践

    gRPC 是一个高性能、开源、通用的 RPC 框架,基于 HTTP/2 设计,使用 Protocol Buffers(ProtoBuf)作为序列化协议。ProtoBuf 允许定义服务接口和消息类型,编译器会生成客户端和服务器端的代码,简化了跨平台的通信。 **gRPC 学习背景** 1. **为什么要学gRPC**:提高网络通信效率,支持多平台、多语言,提供高效序列化和反序列化,以及可靠的安全性和流控。 2. **RPC是什么**:远程过程调用,允许一个程序调用另一个不在同一设备上的程序。 3. **网络库收益分析**:gRPC 提供高效、安全、易用的网

2023年08月

2023年06月

2023年03月

2023年02月

2022年12月

2022年11月

2022年10月

2022年09月

  • 发表了文章 2025-06-05

    高性能图片优化方案

  • 发表了文章 2025-05-22

    01.数组深入浅出分析

  • 发表了文章 2025-05-20

    12.项目重构演进之路

  • 发表了文章 2025-05-09

    11.多用组合和少继承

  • 发表了文章 2025-04-24

    10.接口而非实现编程

  • 发表了文章 2025-04-14

    09.接口vs抽象类比较

  • 发表了文章 2025-03-24

    08.面向对象的特性

  • 发表了文章 2025-03-19

    07.迪米特原则介绍

  • 发表了文章 2025-03-11

    06.依赖倒置原则介绍

  • 发表了文章 2025-03-06

    05.接口隔离原则介绍

  • 发表了文章 2025-03-05

    04.里式替换原则介绍

  • 发表了文章 2025-02-13

    03.开闭原则详细介绍

  • 发表了文章 2024-12-26

    02.单一职责原则详解

  • 发表了文章 2024-11-25

    16.迭代器模式设计思想

  • 发表了文章 2024-11-20

    15.模版模式设计思想

  • 发表了文章 2024-11-14

    14.策略者模式设计思想

  • 发表了文章 2024-11-13

    13.观察者模式设计思想

  • 发表了文章 2024-11-11

    12.享元模式设计思想

  • 发表了文章 2024-11-08

    11.组合模式设计思想

  • 发表了文章 2024-11-06

    10.桥接模式设计思想

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息