Bridge设计模式在Java中是否只有一个抽象和接口Class?
Does Bridge design pattern have only one abstract and interface Class in Java?
Java中抽象和接口Class我真的很难思考?
举个例子:
我们有 2 个用户在学校系统中具有相同和不同的操作
老师:可以添加练习并且查看练习
学生:可以查看 和提交练习
我们有 2 个不同的用户,不同的操作和相同的操作。
那么我们怎样才能做到一个抽象class和一个接口呢?
不应该只有一个 class - 行为不同的东西应该用不同的 class 表示。
如果你想使用接口和抽象class...
为共享行为创建接口:
interface ExerciseViewer {
void view(Exercise exercise);
}
然后为扩展抽象基础的每种类型的人创建具体的 classes class:
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
}
}
但是,我不会这样做。相反,我会创建两个具体的 classes 来实现没有方法的 ExerciseViewer(参见 marker interface),一个 Exercise class 和一个单独的 ExerciseService class 来处理动作具有适当的参数类型。
Java中抽象和接口Class我真的很难思考?
举个例子: 我们有 2 个用户在学校系统中具有相同和不同的操作 老师:可以添加练习并且查看练习 学生:可以查看 和提交练习 我们有 2 个不同的用户,不同的操作和相同的操作。 那么我们怎样才能做到一个抽象class和一个接口呢?
不应该只有一个 class - 行为不同的东西应该用不同的 class 表示。
如果你想使用接口和抽象class...
为共享行为创建接口:
interface ExerciseViewer {
void view(Exercise exercise);
}
然后为扩展抽象基础的每种类型的人创建具体的 classes class:
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
}
}
但是,我不会这样做。相反,我会创建两个具体的 classes 来实现没有方法的 ExerciseViewer(参见 marker interface),一个 Exercise class 和一个单独的 ExerciseService class 来处理动作具有适当的参数类型。