From 4d7f52d90e6b84524ec5c5b70afda9c6732d2592 Mon Sep 17 00:00:00 2001 From: Yue-Lan Date: Tue, 11 Jun 2019 16:31:04 +0800 Subject: [PATCH] Updates zheng-wen-zhi-hou.md Auto commit by GitBook Editor --- zheng-wen-zhi-hou.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zheng-wen-zhi-hou.md b/zheng-wen-zhi-hou.md index b96e15c..826070c 100644 --- a/zheng-wen-zhi-hou.md +++ b/zheng-wen-zhi-hou.md @@ -24,6 +24,8 @@ * 使用view控制显示数据的方式并且提供UI交互的接口 * 使用controller/delegate对某一数据进行修改 +虽然gtk3也开始支持mvc的设计模式了,但是我们没有办法大刀阔斧的对现有框架进行改造,nautilus一样不会这么做,而如果是重写,当然也不会优先考虑gtk。 + 我们不想仅仅因为视图的转变而对数据或数据的载体进行修改,这样代价太大了,像nautilus的iconview和listview,虽然数据相同,但是不是以model/view的形式进行的开发,所以对每一个view都要做不同的处理,而将数据封装在model内部,就不会有这个麻烦。 在model的基础上,view能够给我们提供不同的显示模式,多样的selection机制,自定义的右键菜单,我们想要的一切ui交互都不必直接与数据打交道了。如果要对数据进行修改,让controller或者delegate先将修改缓存,然后以代理者的形式进行修改,可以增强稳定性和代码可读性。通常我们的代理框架都会提供一个友好的编辑框让我们修改起来更加的方便。当然delegate的作用也并不仅仅局限于此。