【问题标题】:Android hide android Api behind interfaceAndroid将android Api隐藏在界面后面
【发布时间】:2017-02-25 06:56:27
【问题描述】:

我最初实现了一个视频捕获应用程序,其中包含 Activity 中的所有摄像头和录制逻辑。根据我对 MVP 设计模式的理解,视图不应该包含除 UI 本身之外的任何逻辑。所以有人建议我将相机逻辑隐藏在界面后面。我真的不明白通过将它隐藏在界面中是什么。这是否意味着我必须创建一个接口并让一个单独的类实现这些功能,然后将其与活动挂钩。谁能引导我正确理解该声明或提供有关此问题的任何外部帮助。

【问题讨论】:

    标签: android interface mvp abstraction


    【解决方案1】:

    这里有一个简单的例子来演示所描述的内容。您希望将所有与相机相关的代码放在一个单独的类中,并有一个接口来描述这些方法。

    interface Recorder {
        void recordVideo();
        void takePicture();
    }
    
    class CameraRecorder implements Recorder {
        void recordVideo() { ... }
        void takePicture() { ... }
    }
    
    // Existing activity
    class Activity {
        Recorder recorder;
    
        void main() {
            recorder.takePicture();
        }
    }
    

    【讨论】:

    • 哦,完美,所以这基本上是我所期望的。还有一个后续问题,关于 MVP 设计,这个逻辑部分是哪个组件?
    • @WilliamC 我不是专家,所以我不完全确定。看起来它可能是一个模型,但如果有大量的逻辑,它可能被认为是一个控制器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 2019-07-15
    • 2011-07-20
    • 2021-07-01
    • 2023-01-03
    相关资源
    最近更新 更多