【问题标题】:Setting up Interactivity between two different classes in different packages在不同包中的两个不同类之间设置交互性
【发布时间】:2014-09-30 06:51:31
【问题描述】:

我有这样的事情:

我需要知道“连接”交互性的最佳做法是什么。

在左侧,我们有一个 RoleSlot,它由分配的 Employee 和 1-5 个 ProjectRole(s) 组成。如果我单击其中一个项目角色,那么我们可以在右侧查看其 ProjectResp(onsibilities)。

问题是,我该怎么做?

这个 ProjectManager 类和 RoleSlot 类在不同的包中。

我应该:

为 ProjectManager 类中的每个小 ListView 设置一个侦听器?这需要让 RoleSlot 的私有 ListView 以某种方式可访问。

或者我应该让 ProjectManager 实现 RoleSlotInterface 并定义一个类似 handleSelectedRole() 的方法?

或者还有其他更好的选择吗?

如果可能的话,我想知道利弊。更简洁的代码是更好的代码。

【问题讨论】:

标签: java listview interface javafx listener


【解决方案1】:

我会在RoleSlot 类上公开一个只读selectedRoleProperty(),在ProjectResp 类上公开一个roleProperty()。我会在ProjectManager 类中设置它们之间的绑定。

class RoleSlot {
    public ReadOnlyObjectProperty<ProjectRole> selectedRoleProperty();
}

class ProjectResp {
    public ObjectProperty<ProjectRole> roleProperty();
}

class ProjectManager {
    private final RoleSlot roleSlot;
    private final ProjectResp projectResp;

    public ProjectManager() {
        roleSlot = ...;
        projectResp = ...;
        projectResp.roleProperty().bind(roleSlot.selectedRoleProperty());
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2019-08-13
    • 2015-04-20
    • 1970-01-01
    • 2016-06-16
    相关资源
    最近更新 更多