【问题标题】:Does Bridge design pattern have only one abstract and interface Class in Java?Bridge 设计模式在 Java 中是否只有一个抽象类和接口类?
【发布时间】:2021-04-07 07:38:41
【问题描述】:

Java 中抽象类和接口类真的很难想象?

这里是一个例子: 我们有 2 个用户在学校系统中具有相同和不同的操作 老师:可以添加练习查看练习 学生:可以查看提交练习 我们有 2 个不同的用户,不同的动作和相同的动作。 那么如何才能做到一个抽象类和一个接口呢?

【问题讨论】:

  • 我会使用 Teacher 和 Student 作为两个不同的班级。
  • 标题中问题的答案是。 Bridge 设计模式不能解决这个问题。
  • 我会为此查看RBAC 并在登录时分配用户角色。您可以有一个名为 User 的基类,它有两个派生类 Student 和 Teacher。是否需要公共基类取决于Users是否共享公共代码。

标签: java design-patterns bridge


【解决方案1】:

不应只有一个类 - 行为不同的事物应由不同的类表示。

如果你想使用一个接口和一个抽象类...

为共享行为创建一个接口:

interface ExerciseViewer {
    void view(Exercise exercise);
}

然后为扩展抽象基类的每种类型的人创建具体类:

abstract class SchoolPerson implements ExerciseViewer {
    public void view(Exercise exercise) {
         // some implemention
    }
}

class Teacher extends SchoolPerson {
    public void add(Exercise exercise) {
        // some implementation
    }
}

class Student extends SchoolPerson {
    public void submit(Exercise exercise) {
        // some implementation
    }
}

但是,我不会这样做。相反,我将创建两个具体的类来实现没有方法的练习查看器(请参阅marker interface),一个练习类和一个单独的练习服务类,用于处理具有适当参数类型的操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 2012-07-14
    相关资源
    最近更新 更多