gpt4 book ai didi

java - 使用继承与接口(interface)的装饰器设计模式

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:23:04 36 4
gpt4 key购买 nike

我想使用继承(Decorator extends Component)实现 Decorator 设计模式,因为我需要访问 Component 类的 protected 字段/方法。

问题在于 Component 类代表一种算法,它在构造时执行一些预处理并保存大量数据。现在,每次我要装饰一个组件时,我都会创建一个新的 Decorator 实例,这将需要构建一个新的(无用的)组件实例来执行不需要的计算并保存不需要的数据。

我想使用接口(interface)而不是继承,但我将无法访问组件的 protected 信息。

扩展 Component 类时我担心资源浪费是否正确?如果是这样,我如何才能在不失去对我需要的信息的访问权的情况下避免它?

最后一点:我可以创建 Decorator 实例并为其提供“虚拟”数据,以便它执行最少的计算量,但这个解决方案感觉很乱。

谢谢。

最佳答案

我不确定这是否真的算作装饰器模式。听起来更像是普通的旧继承。

Am i right to worry about the waste of resources when extending the Component class?

显然取决于您浪费了多少资源。

And if so, how can i avoid it without losing access to the information i need?

您或许可以通过扩展 Component 并添加访问您需要的 protected 部分的方法来“打开”它。然后使用接口(interface)和组合为这个新类实现装饰器。

关于java - 使用继承与接口(interface)的装饰器设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6186295/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com