java - 我可以优化我的 Java 代码来替换重复的片段吗?

标签 java optimization refactoring

我正在创建具有一些相似元素的 GUI 应用程序,因此代码是重复的;只是变量不同。例如,我有这样的东西:

lenPan2 = new JPanel();
lenPan2.setLayout(new GridBagLayout());

bTitled2 = BorderFactory.createTitledBorder(bGreyLine, "Example", TitledBorder.LEFT, TitledBorder.TOP);
lenPan2.setBorder(bTitled2);

tVllResult = new JTextField("");
tVllResult.setColumns(10);
tVllResult.setFont(defFont);
lenPan2.add(tVllResult, new GBC(10, 2, 2, 1));

String[] vllOutUnits = {"Unit 0", "Unit 1", "Unit 2", "Unit 3", "Unit 4"};
cVllOutUnit = new JComboBox<String>(vllOutUnits);
cVllOutUnit.setSelectedIndex(1);
cVllOutUnit.setPreferredSize(new Dimension(240, 25));
cVllOutUnit.setFont(defFont);
lenPan2.add(cVllOutUnit, new GBC(12, 2, 4, 1));
cVllOutUnit.addActionListener(this);

本例中的变量为:lenPan2、bTitled2、tVllResult、vllOutUnitscVllOutUnit 和边框标题。我可以以某种方式创建一个包含所有这些数据并且仅将变量作为参数的方法吗?

我在想这样的事情:

private static insertElement(JPanel jp, BorderFactory bf, JTextField jtf, String bt, String[] vll, JComboBox cvl)
{
this.jp = jp;
this.bf = bf;
(...)

jp = new JPanel();
jp.setLayout(new GridBagLayout());

bf = BorderFactory.createTitledBorder(bGreyLine, bt, TitledBorder.LEFT, TitledBorder.TOP);
jp.setBorder(bf);
(...)

调用者:

insertElement(lenPan2, bTitled2, tVllResult, Example, {"Unit 0", "Unit 1", "Unit 2", "Unit 3", "Unit 4"}, cVllOutUnit);

这是正确的还是您会推荐其他方式?

最佳答案

是的,您当然可以创建一个辅助方法来为您创建 GUI。

它会让你的代码更容易阅读吗?当然。

它会让你的代码更容易维护吗?当然。

它会让你的代码更快(即“优化”)吗?没有。

关于java - 我可以优化我的 Java 代码来替换重复的片段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12904066/

相关文章:

.net - 如何轻松找到未使用的公共(public)方法/属性

java - 使用 Spring 将嵌套集合中的对象转换为 JSON

java - JPA - PersistenceUtil.isLoaded - 它加载到哪个EntityManager中?

java - Amdatu token 提供商

java - Java 线程安全单例工厂

optimization - 找到两个链表与重复项的交集

python - Tensorflow:在 eager 模式下慢 7 倍

java - 我的 Android 应用程序正在耗尽电池电量吗?

actionscript-3 - 是否有替代工厂方法的替代方法?

php - 哪个 IDE 可以正确重构(重命名)Zend Framework 2 类?