通过继承扩展片段屏幕?
Extends Fragment screen with inheritance?
我已经为附加在 class OrderFragmentDetails 中的屏幕实施了 UI,这是买家和卖家流程的同一屏幕。唯一的区别是按钮确认订单的行为。我正在考虑 2 个选项:
1 - 为买方和卖方扩展 OrderFragmentDetails:
OrderBuyerFragmentDetails 和 OrderSellerFragmentDetails(我正在使用 MVP,因此还创建了 2 个从 OrderFragmentDetailsPresenter 扩展的演示者)
2 - 在创建片段时传递一个参数,并在 OrderFragmentDetailsPresenter 中决定逻辑。这样做的缺点是代码看起来不太可扩展……而在第一种情况下,为按钮中的不同调用创建 2 classes 看起来有点矫枉过正,而且我不太喜欢扩展UI.
我会有 1 个片段和 2 个演示者。类似于您的第二个选项,但具有逻辑分离。根据您在创建片段实例时发送的参数注入适当的呈现器。
基本上,因为您有 相同的 UI,所以您应该重复使用 相同的视图(片段),并且因为您有不同的逻辑你可以有不同的演示者。
此时您应该比较两个选项:有一个演示者与有两个演示者。
如果您的sell/buy逻辑是小,那么只有一个演示者可以state,你将从你的片段中传递。
如果逻辑是中型或大型最好有2个演示者。
我已经为附加在 class OrderFragmentDetails 中的屏幕实施了 UI,这是买家和卖家流程的同一屏幕。唯一的区别是按钮确认订单的行为。我正在考虑 2 个选项:
1 - 为买方和卖方扩展 OrderFragmentDetails: OrderBuyerFragmentDetails 和 OrderSellerFragmentDetails(我正在使用 MVP,因此还创建了 2 个从 OrderFragmentDetailsPresenter 扩展的演示者)
2 - 在创建片段时传递一个参数,并在 OrderFragmentDetailsPresenter 中决定逻辑。这样做的缺点是代码看起来不太可扩展……而在第一种情况下,为按钮中的不同调用创建 2 classes 看起来有点矫枉过正,而且我不太喜欢扩展UI.
我会有 1 个片段和 2 个演示者。类似于您的第二个选项,但具有逻辑分离。根据您在创建片段实例时发送的参数注入适当的呈现器。
基本上,因为您有 相同的 UI,所以您应该重复使用 相同的视图(片段),并且因为您有不同的逻辑你可以有不同的演示者。
此时您应该比较两个选项:有一个演示者与有两个演示者。
如果您的sell/buy逻辑是小,那么只有一个演示者可以state,你将从你的片段中传递。
如果逻辑是中型或大型最好有2个演示者。