Java 消除了对addXXListener等不必要代码的需求,并将UI逻辑转移到表示模型,表示模型是POJO,可以通过正常的JUnit测试进行测试。Robobind本身配备了300多个JUnit测试,以确保其质量。
根据Xamarin团队的解释(在iOS MVC上,“我知道这看起来很奇怪,但请稍候”):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
- 模型(数据或应用程序逻辑)
- 视图(用户界面),以及
- 控制器(代码隐藏)
- 模型(数据或应用程序逻辑)
- 视图(用户界面),以及
- 控制器(代码隐藏)
说明:
- 当我们不得不在软件开发中主导大型项目时,MVC 通常使用,因为这是组织会议的通用方式 项目
- 新开发人员可以快速适应项目
- 帮助开发大型项目和跨平台
MVC模式本质上是这样的:
- 模型:显示什么。这可以是数据源(例如:服务器、原始 应用程序中的数据)
- 视图:它的显示方式。这可以是xml。因此,它扮演着一个角色 演示文稿过滤器。视图附着到其模型(或模型零件) 并获取演示所需的数据
- 控制器:处理像用户输入这样的事件。这就是活动
MVC的重要特性:我们可以修改模型、视图或控制器,但不影响其他模型、视图或控制器
- 假设我们更改视图中的颜色、视图大小或位置 这是我的看法。这样做不会影响模型或控制器
- 假设我们更改了模型(而不是从服务器获取的数据) 从资产中获取数据)但它不会影响视图和 控制器
- 假设我们更改控制器(活动中的逻辑),它不会影响 模型与视图
说明:
- 当我们不得不在软件开发中主导大型项目时,MVC 通常使用,因为这是组织会议的通用方式 项目
- 新开发人员可以快速适应项目
- 帮助开发大型项目和跨平台
MVC模式本质上是这样的:
- 模型:显示什么。这可以是数据源(例如:服务器、原始 应用程序中的数据)
- 视图:它的显示方式。这可以是xml。因此,它扮演着一个角色 演示文稿过滤器。视图附着到其模型(或模型零件) 并获取演示所需的数据
- 控制器:处理像用户输入这样的事件。这就是活动
MVC的重要特性:我们可以修改模型、视图或控制器,但不影响其他模型、视图或控制器
- 假设我们更改视图中的颜色、视图大小或位置 这是我的看法。这样做不会影响模型或控制器
- 假设我们更改了模型(而不是从服务器获取的数据) 从资产中获取数据)但它不会影响视图和 控制器
- 假设我们更改控制器(活动中的逻辑),它不会影响 模型与视图
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