UI框架-获取其他界面

在最近的开发中,因为最开始在设定框架的时候,在 UIManager 中开放了获取指定 UI 的接口,导致最近重构异常痛苦

为什么不要有获取其他界面的接口

如果开放了这类接口会让代码耦合度上升。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// A界面
public class AView : BaseView
{
public void ShowAni(){
}
}

public class ASubView : BaseView
{

public void GetReward(){
...
UIManger.Instance.Get<AView>().ShowAni(); // 强烈的耦合
Close();
}

}

解决方法

UI 因该是响应数据变化的而刷新的,上面这种代码的出现,本质其实就是因为提供了 Get 界面的接口,让程序偷懒的实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class AModel : BaseModel
{
public void ChangeValue(int value){
...
EventSystem.Instance.Trigger(EventDefine.AViewShowAni)
}
}

public class AView: BaseView{

public void BindEvent(){
EventSystem.Instance.Bind(EventDefine.AViewShowAni,ShowAni);
}

public void ShowAni{

}
}

public class AsubView: BaseeView{
public void GetReward(){
...
AModel.Instance.ChangeValue(x); // View -> Data -> View

Close();
}
}

UI框架-获取其他界面
https://lshgame.com/2025/09/27/UI_Framework_Get_Other_UI/
作者
SuHang
发布于
2025年9月27日
许可协议