Oop 利用构图解决问题
我的课程如下:Oop 利用构图解决问题,oop,Oop,我的课程如下: public UIManager{ private UIInstructor uiInstructor; private MOdel model; } UIManager将其部分任务委托给UI讲师 我的问题是:如果UI讲师想要使用UIManager的一些实例变量(例如:模型对象),它是一个 良好的设计实践,让“UI讲师”店向UIManager推荐 或者我们是否需要改变设计,使“UI讲师”不“依赖”UIManager进行任何操作 在UI讲师中添加对UIman
public UIManager{
private UIInstructor uiInstructor;
private MOdel model;
}
UIManager将其部分任务委托给UI讲师
我的问题是:如果UI讲师想要使用UIManager的一些实例变量(例如:模型对象),它是一个
良好的设计实践,让“UI讲师”店向UIManager推荐
或者我们是否需要改变设计,使“UI讲师”不“依赖”UIManager进行任何操作 在UI讲师中添加对UImanager的引用将创建循环依赖关系,这是不好的 理想情况下,组成一个新类的字段不应该依赖于这个新类
因此,对设计进行更改,使“UI讲师”在其任何操作中都不“依赖”UIManager。在这种情况下,尝试的第一个解决方案是让
UIManager
对象将对模型的引用传递给UI讲师
。一般来说,最好避免不需要的依赖关系,尤其是循环依赖关系
在减少依赖性的精神中,您可能想考虑<代码> uiRealthor 是否应该真正地看到所有的<代码>模型< /代码>。因此,您的
模型
类可能如下所示:
class Model
{
private InstructorModel instructorModel;
private StudentModel studentModel;
}
您可以想象,我们可能会添加到您的经理中,这样它也会显示一名学生
class UIManager{
private UIInstructor uiInstructor;
private UIStudent uiStudent;
private Model model;
}
然后,UIManager
通过model.instructorModel
初始化uiInstructor
,通常通过构造函数。并通过model.studentModel
初始化uiStudent
这些只是一些想法。做事情有很多不同的方法,但一个好的经验法则是安排每个类只“看到”它需要的东西