gpt4 book ai didi

java - 装饰器模式 - 如何一次装饰两种类型

转载 作者:行者123 更新时间:2023-12-04 05:58:44 25 4
gpt4 key购买 nike

我在 Java 中工作

我为图边创建了一个很好的装饰器结构。我有两个顶点的基础边,然后我有一个加权装饰器,它为边添加权重,然后我有一个定向装饰器,为边添加方向。装饰器是使用接口(interface)和委托(delegate)方法实现的(不是通过继承)。

现在我想添加另一个装饰器——一个流装饰器,对应一个流边。流边有方向和权重(容量),加上流。我如何在 Java 中实现这样的东西?我需要类似的东西

public class FlowEdge implements IEdge, IWeightedEdge, IOrientedEdge, IFlowEdge
{
private IEdge, IWeightedEdge, IOrientedEdge decorated;
private int flow;

//constructors, delegate methods...

但这显然是不可能的。

也许装饰器不是最好的使用模式。我想实现关注点的分离(所以我可以有正常、加权、定向边缘的任意组合),但还需要一个类中可能有多个装饰器的功能。这有可能吗?还是我过度设计了这个?

最佳答案

Decorators are implemented using interfaces and delegate methods (not by inheritance).



我认为这可能是你撞墙的原因。装饰器模式通过使用继承和多态在 Java 中很好地产生了自己。这是“用一种语言编程与用一种语言编程”的一个很好的例子。

关于java - 装饰器模式 - 如何一次装饰两种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9186597/

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