Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 消除了对addXXListener等不必要代码的需求,并将UI逻辑转移到表示模型,表示模型是POJO,可以通过正常的JUnit测试进行测试。Robobind本身配备了300多个JUnit测试,以确保其质量。_Java_Android_Design Patterns_Model View Controller - Fatal编程技术网

Java 消除了对addXXListener等不必要代码的需求,并将UI逻辑转移到表示模型,表示模型是POJO,可以通过正常的JUnit测试进行测试。Robobind本身配备了300多个JUnit测试,以确保其质量。

Java 消除了对addXXListener等不必要代码的需求,并将UI逻辑转移到表示模型,表示模型是POJO,可以通过正常的JUnit测试进行测试。Robobind本身配备了300多个JUnit测试,以确保其质量。,java,android,design-patterns,model-view-controller,Java,Android,Design Patterns,Model View Controller,根据Xamarin团队的解释(在iOS MVC上,“我知道这看起来很奇怪,但请稍候”): 模型(数据或应用程序逻辑) 视图(用户界面),以及 控制器(代码隐藏) 我可以这样说: Android上的模型就是可包裹的对象。视图是XML布局,控制器是(活动+其片段) *这只是我的观点,不是来自任何资源或书籍。根据Xamarin团队的解释(在iOS MVC上,“我知道这看起来很奇怪,但请稍候”): 模型(数据或应用程序逻辑) 视图(用户界面),以及 控制器(代码隐藏) 我可以这样说: Andro

根据Xamarin团队的解释(在iOS MVC上,“我知道这看起来很奇怪,但请稍候”):

  • 模型(数据或应用程序逻辑)
  • 视图(用户界面),以及
  • 控制器(代码隐藏)
我可以这样说:

Android上的模型就是可包裹的对象。视图是XML布局,控制器是(活动+其片段)

*这只是我的观点,不是来自任何资源或书籍。

根据Xamarin团队的解释(在iOS MVC上,“我知道这看起来很奇怪,但请稍候”):

  • 模型(数据或应用程序逻辑)
  • 视图(用户界面),以及
  • 控制器(代码隐藏)
我可以这样说:

Android上的模型就是可包裹的对象。视图是XML布局,控制器是(活动+其片段)

*这只是我的观点,不是来自任何资源或书籍


说明:

  • 当我们不得不在软件开发中主导大型项目时,MVC 通常使用,因为这是组织会议的通用方式 项目
  • 新开发人员可以快速适应项目
  • 帮助开发大型项目和跨平台

MVC模式本质上是这样的:

  • 模型:显示什么。这可以是数据源(例如:服务器、原始 应用程序中的数据)
  • 视图:它的显示方式。这可以是xml。因此,它扮演着一个角色 演示文稿过滤器。视图附着到其模型(或模型零件) 并获取演示所需的数据
  • 控制器:处理像用户输入这样的事件。这就是活动

MVC的重要特性:我们可以修改模型、视图或控制器,但不影响其他模型、视图或控制器

  • 假设我们更改视图中的颜色、视图大小或位置 这是我的看法。这样做不会影响模型或控制器
  • 假设我们更改了模型(而不是从服务器获取的数据) 从资产中获取数据)但它不会影响视图和 控制器
  • 假设我们更改控制器(活动中的逻辑),它不会影响 模型与视图


说明:

  • 当我们不得不在软件开发中主导大型项目时,MVC 通常使用,因为这是组织会议的通用方式 项目
  • 新开发人员可以快速适应项目
  • 帮助开发大型项目和跨平台

MVC模式本质上是这样的:

  • 模型:显示什么。这可以是数据源(例如:服务器、原始 应用程序中的数据)
  • 视图:它的显示方式。这可以是xml。因此,它扮演着一个角色 演示文稿过滤器。视图附着到其模型(或模型零件) 并获取演示所需的数据
  • 控制器:处理像用户输入这样的事件。这就是活动

MVC的重要特性:我们可以修改模型、视图或控制器,但不影响其他模型、视图或控制器

  • 假设我们更改视图中的颜色、视图大小或位置 这是我的看法。这样做不会影响模型或控制器
  • 假设我们更改了模型(而不是从服务器获取的数据) 从资产中获取数据)但它不会影响视图和 控制器
  • 假设我们更改控制器(活动中的逻辑),它不会影响 模型与视图

厌倦了Android上的MVx灾难,我最近制作了一个小型库,提供单向数据流,类似于MVC的概念:

基本上,您有一个组件(活动、片段和视图组)。在内部定义视图图层的结构和样式。还可以定义数据应如何绑定到视图。最后,您可以将侦听器绑定到同一位置

然后,一旦更改了数据,将调用全局“render()”方法,并使用最新的数据智能地更新视图

下面是一个组件的示例,该组件具有代码紧凑性所需的所有内容(当然,模型和控制器可以很容易地分离)。这里“count”是一个模型,“view()方法”是一个视图,“v->count++”是一个控制器,它监听按钮单击并更新模型

public MyView extends RenderableView {
  public MyView(Context c) {
      super(c);
  }

  private int count = 0;

  public void view() {
    frameLayout(() -> {              // Define your view hierarchy
      size(FILL, WRAP);
      button(() -> {
          textColor(Color.RED);      // Define view style
          text("Clicked " + count);  // Bind data
          onClick(v -> count++);     // Bind listeners
      });
    });
  }
使用分离的模型和控制器,它看起来像:

button(() -> {
   textColor(Color.RED);
   text("Clicked " + mModel.getClickCount());
   onClick(mController::onButtonClicked);
});
在这里,单击每个按钮时,数量将增加,然后调用“render()”,按钮文本将更新

如果使用Kotlin:,语法会变得更令人愉快。此外,对于没有lambdas的Java,还有其他语法

库本身非常轻量级,没有依赖性,没有使用反射等


(免责声明:我是该库的作者)

厌倦了Android上的MVx灾难,我最近制作了一个小型库,提供单向数据流,类似于MVC的概念:

基本上,您有一个组件(活动、片段和视图组)。在内部定义视图图层的结构和样式。还可以定义数据应如何绑定到视图。最后,您可以将侦听器绑定到同一位置

然后,一旦更改了数据,将调用全局“render()”方法,并使用最新的数据智能地更新视图

下面是一个组件的示例,该组件具有代码紧凑性所需的所有内容(当然,模型和控制器可以很容易地分离)。这里“count”是一个模型,view()方法是一个视图,“v->con”
     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