请问这是不是一个好的后端设计模式?


我最近在学习iOS编程。我打算编写一个简单的app,这个app的功能是:手机拍照,然后把照片传到用 java + Tomcat 写的服务器后端,后端负责对照片进行一些图片处理的操作,然后再把处理过的照片以及照片的一些文本EXIF信息(比如拍照时间,镜头参数等等)传回手机端。

我想请教一下大家,要满足上述的要求, 后端应该采用一种什么样的设计模式比较好? 我在网上搜了不少设计模式的内容,但感觉没有找到一个很相关的。希望能在这儿找到一些帮助。我现在采用的工程结构如下:

  • model : 包括所有的model类
  • controller : 包括所有和HTTP requests相关的类,用来进行网络相关操作,比如:接收、发送照片
  • service : 包括所有图片处理相关的服务类
  • dao : (Data Access Object)包括的类用来和数据库进行交互,比如:记录一些文本信息

请问大家:

  1. 我上面的设计对我当前想做的app合不合理?
  2. 感觉 service 这个词太宽泛了。以后我还打算增加其它不同的服务,比如:物体检测、识别。这样的话, service 里面就显得比较乱。图片处理和物体识别的服务完全可以看做两种完全不同的服务。我想请教一下各位,这种情况我应该怎么管理比较好?比如新建 imgprocservice (Image Processing Service) 和 imgrecservice (Image Recognition Service)?但感觉名字就太长了一点。
  3. 如果各位知道什么好的手机app设计前端和后端相关的设计模式的入门资料的话,还请推荐一下。

谢谢大家。

手机服务端 手机开发 设计模式 服务器端

湯浅比呂美 10 years, 10 months ago

没有好模式,只有合适的模式。只有实际去写代码,去改代码才能知道模式的好坏。我觉得最不合理的就是代码还没写出来就来研究设计模式,希望“先学好设计模式,然后一下子写出很好的代码出来”

抄一段我以前的回答过来

写代码的时候我不会刻意地想:啊今天我要用FP/OOP/XX原则。

好代码是经历时间改出来的,好思想是对着好代码总结出来的,这个顺序我觉得不能反,刻意地想着某某思想去写代码很容易进入误区

最后,如果你既不会写iOS,又不会写后端,然后以后的方向又希望以iOS为主,那么强烈不建议你用Java来写后端,这会牵涉你很多不必要的精力。推荐python / ruby / nodejs 这三个平台,都是学习成本不高,类库丰富,轻便灵活的平台,我个人认为更适合iOS程序员写简单后台

伟岸的大面条 answered 10 years, 10 months ago

Your Answer