本几章主要讲解了static的详细作用及场景、
通过讲解了几个场景如实现工具包函数,实现单例,实现类的扩展等几个场景,主要用于定义类变量、方法以及代码块。在类变量和方法中,static使其与类的实例无关,即不需要创建对象即可访问。这在设计模式中常用于单例模式和工具类中。
1. static的设计优势
内存管理优化:static变量在类加载时分配内存,仅占用一份内存空间,适合需要共享数据的场景,减少了内存开销。
全局访问:通过类名即可访问static变量和方法,提供了便捷的访问方式,常用于常量定义和工具方法。
避免实例化:在工具类中使用static方法,可以避免不必要的对象创建,提高代码执行效率。
2. static在架构设计中的应用
在架构设计中,合理使用static关键字能提升系统性能和代码可读性,但滥用也可能导致问题,例如全局变量的不可控性和难以测试。
单例模式:通过static关键字实现单例模式,确保类的唯一实例,常用于数据库连接池等场景。
工具类设计:在设计工具类时,常将方法设计为static,避免实例化,方便调用。
静态代码块:用于在类加载时执行初始化代码,如配置加载和资源初始化。
3. static的潜在问题
线程安全性:static变量在多线程环境下可能会引发并发问题,需要额外的同步处理。
测试困难:由于static方法不依赖对象状态,难以通过依赖注入进行单元测试,可能需要借助反射等手段进行测试。
全局状态管理:滥用static变量可能导致代码的全局状态难以管理和调试。
第十一章主要分享了几个故事,讲的是对于可以修改的容易修改的,我们的架构要能动态支持这些修改,尽可能的完善架构,对未来的的业务有假想的能力,并满足这些设想。
通过讲解了几个场景如实现工具包函数,实现单例,实现类的扩展等几个场景,主要用于定义类变量、方法以及代码块。在类变量和方法中,static使其与类的实例无关,即不需要创建对象即可访问。这在设计模式中常用于单例模式和工具类中。
1. static的设计优势
内存管理优化:static变量在类加载时分配内存,仅占用一份内存空间,适合需要共享数据的场景,减少了内存开销。
全局访问:通过类名即可访问static变量和方法,提供了便捷的访问方式,常用于常量定义和工具方法。
避免实例化:在工具类中使用static方法,可以避免不必要的对象创建,提高代码执行效率。
2. static在架构设计中的应用
在架构设计中,合理使用static关键字能提升系统性能和代码可读性,但滥用也可能导致问题,例如全局变量的不可控性和难以测试。
单例模式:通过static关键字实现单例模式,确保类的唯一实例,常用于数据库连接池等场景。
工具类设计:在设计工具类时,常将方法设计为static,避免实例化,方便调用。
静态代码块:用于在类加载时执行初始化代码,如配置加载和资源初始化。
3. static的潜在问题
线程安全性:static变量在多线程环境下可能会引发并发问题,需要额外的同步处理。
测试困难:由于static方法不依赖对象状态,难以通过依赖注入进行单元测试,可能需要借助反射等手段进行测试。
全局状态管理:滥用static变量可能导致代码的全局状态难以管理和调试。
第十一章主要分享了几个故事,讲的是对于可以修改的容易修改的,我们的架构要能动态支持这些修改,尽可能的完善架构,对未来的的业务有假想的能力,并满足这些设想。