Java开发中类对象应在构造方法中创建还是在使用它的方法中创建
两种实现方式没有绝对优劣,需要根据你的实际业务场景选择,二者的差异和适用场景如下:
第一种:构造方法中创建View实例
代码示例:
public class Logic { private View view; public Logic() { view = new View(); // 注意原写法此处冒号需改为分号 } public void someMethod(String string){ view.print(string); } }
适用场景
someMethod调用频率较高- 需要全局复用同一个View实例,统一配置View的行为
- 后续有依赖注入、替换View实现类的需求
优势
- 全局仅持有一个View实例,避免频繁创建销毁对象的性能开销,降低GC压力
- View的配置统一在构造方法中完成,维护成本低
- 代码结构更符合依赖倒置原则,扩展性更强
劣势
- 若
Logic实例创建后从未调用someMethod,会造成不必要的内存占用 - View实例的创建成本较高时,会拖慢
Logic实例的初始化速度
第二种:方法内部创建View实例
代码示例:
public class Logic { public Logic() { } public void someMethod(String string){ View view = new View(); view.print(string); } }
适用场景
someMethod调用频率极低,甚至大部分场景下不会被触发- 每次调用
someMethod需要使用独立的View实例,不同调用之间的View配置互不干扰
优势
- 实现懒加载,只有真正用到View的时候才会占用内存,资源利用率更高
- 不同调用的View实例完全隔离,灵活度更高
劣势
- 高频调用时会产生大量临时对象,增加GC负担,性能更差
- 若需要修改View的初始化配置,需要修改每一处创建View的代码,维护成本高
选择建议
优先选择构造方法创建的方案,除非你明确符合第二种方案的适用场景。
内容的提问来源于stack exchange,提问作者Dmitry Gurinovich
相关产品推荐
相关产品推荐

