有可能在Java中为Android实现模型-视图-控制器模式吗?

或者它已经通过活动实现了吗?或者有没有更好的方法来实现Android的MVC模式?


当前回答

我同意JDPeckham的观点,并且我相信XML本身不足以实现应用程序的UI部分。

然而,如果你认为Activity是视图的一部分,那么实现MVC是相当简单的。您可以重写Application(由Activity中的getApplication()返回),在这里您可以创建一个在应用程序的生命周期中存在的控制器。

(或者,您也可以使用应用程序文档中建议的单例模式)

其他回答

MVC- Android上的架构 在android中最好遵循任何MVP而不是MVC。但仍然根据问题的答案这是可以解的

描述及指引

     Controller -
        Activity can play the role.
        Use an application class to write the
        global methods and define, and avoid
        static variables in the controller label
    Model -
        Entity like - user, Product, and Customer class.
    View -
        XML layout files.
    ViewModel -
        Class with like CartItem and owner
        models with multiple class properties
    Service -
        DataService- All the tables which have logic
        to get the data to bind the models - UserTable,
        CustomerTable
        NetworkService - Service logic binds the
        logic with network call - Login Service
Helpers -
        StringHelper, ValidationHelper static
        methods for helping format and validation code.
SharedView - fragmets or shared views from the code
        can be separated here

AppConstant -
        Use the Values folder XML files
        for constant app level

注1:

这是你可以施展的魔法。在对代码段进行分类之后,编写一个基本接口类,比如IEntity和IService。声明通用方法。现在创建抽象类BaseService,声明您自己的方法集,并分离代码。

注2:如果您的活动呈现多个模型,那么与其在活动中编写代码/逻辑,不如将视图划分为片段。那就好多了。因此,如果将来需要在视图中显示更多的模型,请再添加一个片段。

注3:代码分离是非常重要的。体系结构中的每个组件都应该是独立的,而不是相互依赖的逻辑。如果碰巧你有一些相关的逻辑,那么在两者之间写一个映射逻辑类。这对你将来会有帮助。

我发现在Android上实现MVC最好的资源是这篇文章:

我在自己的一个项目中采用了同样的设计,效果非常好。我是Android的初学者,所以我不能说这是最好的解决方案。

我做了一个修改:我实例化了应用程序类中每个活动的模型和控制器,这样当横向-纵向模式更改时就不会重新创建这些模型和控制器。

我看到很多人说MVC已经在Android中实现了,但这不是真的。Android默认不遵循MVC。

因为我不谷歌将永远强制MVC实现像iPhone的限制,但它取决于开发人员的模式或技术,他们想在他们的项目,在小或简单的应用程序使用MVC是不需要的,但随着应用程序的增长,变得复杂,并需要修改其代码在以后的几年,然后有一个MVC模式在Android的需求。

它提供了一种修改代码的简单方法,还有助于减少问题。 如果你想在Android上实现MVC,那么按照下面给出的链接,在你的项目中享受MVC实现。

http://www.therealjoshua.com/2011/11/android-architecture-part-1-intro/

但是现在,我认为MVP和Android架构模式是开发人员应该使用的干净和健壮的Android应用程序的最佳选择之一。

Android的MVC模式(有点)是用它们的Adapter类实现的。他们用“适配器”替换控制器。适配器的描述声明:

对象充当AdapterView和对象之间的桥梁 该视图的底层数据。

我只是在寻找一个从数据库读取的Android应用程序,所以我不知道它工作得有多好。然而,它看起来有点像Qt的模型-视图-委托架构,他们声称这是传统MVC模式的一个升级。至少在PC上,Qt的模式运行得相当不错。

我同意JDPeckham的观点,并且我相信XML本身不足以实现应用程序的UI部分。

然而,如果你认为Activity是视图的一部分,那么实现MVC是相当简单的。您可以重写Application(由Activity中的getApplication()返回),在这里您可以创建一个在应用程序的生命周期中存在的控制器。

(或者,您也可以使用应用程序文档中建议的单例模式)