gpt4 book ai didi

java - 更好的建模设计java

转载 作者:太空宇宙 更新时间:2023-11-04 06:39:50 27 4
gpt4 key购买 nike

我必须为另一个类(class)提供监管管理。

我想这两个类:

A类:

public class A {
private String attributeA1;
...
private String attributeA50;
...
// getters and setters
}

B 类:

public class B {
private String attributeB1;
...
private String attributeB50;
...
// getters and setters
}

A 类的每个属性都将提供 B 类的属性。

示例:

public Class Supplying {
public B elementB;
public A elementA;

public void supplyAttributeB1( String toto){
String tata = elementA.getattributeA1();
// Example of regulatory management "Substring"
elementB.setAttributeB1(tata.substring(5));
}

public void supplyAttributeB2(String toto){
...
}

...
public void supplyAttributeB50(String toto){
...
}
}

当我看到我的代码时,它不是很漂亮,我认为我有一个建模问题,因为提供的类将有超过 150 行代码。

是否有其他方法通过使用接口(interface)或继承或设计模式来实现这个概念?我正在努力学习如何更好地编码。

最佳答案

如果您的操作属于某些大类,则可以使用策略模式:

public interface DataConverter<F,T> {
public T convert( F from );
}

public class SubstringConverter implements DataConverter<String,String> {

private final int start;

public SubstringConverter( int start ) { this.start = start; }

public String convert( String from ) {
return from.substring( start );
}

}

在你的供应阶层

public class Supplying {
private static final DataConverter<String,String> b1Converter = new SubstringConverter( 5 );
// and so on ...


public void supplyAttributeB1() {
elementB.setAttributeB1( b1Converter.convert( elementA.getAttributeA1() ) );
}

}

这样可以轻松更改逻辑(只要字段 Ax 始终转换为字段 Bx,您所需要做的就是插入新转换器),并且可以轻松查看发生了什么。

这就是您在不构建全尺寸数据转换框架的情况下所能做到的最大程度,您可能会使用反射来访问字段并使用外部配置文件来驱动实体之间的映射。

关于java - 更好的建模设计java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24821335/

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