我目前正在开发一个 Angular 应用程序,并探索将不同的设计和方法整合到我的应用程序中。目标是遵循并坚持 SOLID 原则,在同一条线上我研究了 MVP(模型-视图-演示者)模式,正如该模式所暗示的,业务逻辑和表示逻辑必须以不同的方式处理。更准确地说,智能组件必须与外部世界交互并且可以依赖于服务,而它的子组件必须保持沉默并依赖父组件来获取数据。它还建议将用户交互逻辑委托给一个名为 Presenter 的专用类,该类与表示组件(哑)进行交互。在容器和演示者的帮助下,我们可以实现 MVP 模式。
我们也可以在 Angular 中使用指令来实现相同的设计模式。例如,我有一个带有几个按钮的组件,当用户单击按钮时,可以在自定义指令中捕获单击事件,而不是使用组件的代码隐藏文件。
因此,有一个问题困扰着我,让我接到有关实施的电话。使用指令来分离用户交互逻辑是一种好方法,还是我应该遵循 MVP 模式?