gpt4 book ai didi

java - 设计模式: How to structure the following scenario into proper classes?

转载 作者:行者123 更新时间:2023-12-02 02:46:06 24 4
gpt4 key购买 nike

这更像是一个代码“架构”问题。我有两个类(class)一和二。它们都需要数据和样式,因此我使用在父类中实现的两个方法 getData 和 getStyles。在第二类中,我对数据和样式执行一些额外的“转换”或处理,然后返回它。

这是一个好方法吗?有办法让它变得更好吗?例如,我在类一和类二中使用两个相同的行 getData() 和 getStyles()。

public abstract class Base {
protected Data getData() {
// some code to get data and return it
}

protected Styles getStyles() {
// some code to get styles and return it
}
}

public class One extends Base {
public String generateResult() {
Data data = getData();
Styles styles = getStyles();
return getStreamedResult(data, styles);
}
}

public class Two extends Base {
public String generateResult() {
Data data = getData();
Styles styles = getStyles();
Transforms transformedResult = performTransform(data, styles);
return getStreamedResult(transformedResult);
}
}

最佳答案

这样:

public abstract class Base {
protected Data getData() {
// some code to get data and return it
}

protected Styles getStyles() {
// some code to get styles and return it
}

public String generateResult() {
Data data = getData();
Styles styles = getStyles();
Transforms transformedResult = performTransform(data, styles);
return getStreamedResult(transformedResult);
}

public abstract Transforms performTransform(Data data, Styles styles);
}

public class One extends Base {
@Override
public Transforms performTransform(Data data, Styles styles) {
// unit transform, data and styles are unmodified
}
}

public class Two extends Base {
@Override
public Transforms performTransform(Data data, Styles styles) {
// intended transforms for class Two
}
}

在每个子类中,您只需指定转换是什么。

关于java - 设计模式: How to structure the following scenario into proper classes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57143419/

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