1.MVC设计模式简介:
MVC本来是存在Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V代码分离,从而使同一个程序可以使用不同的表现形式,比如统计数据可以分别选用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
1. MVC如何工作
MVC是一个设计模式,它强制性的将应用程序输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器,他们各自处理自己的任务。
1. 视图:
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是有HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些的新技术层出不穷,它们包括AdobeFlash 、XHTML、XML/XSL、WML等一些标记语言和Web service。
如何处理应用程序的界面变得越来越有挑战性,MVC一个大好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机储存的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
2. 模型:
模型表示企业数据和业务规则,在MVC的三个部件中,模型拥有最多的处理任务,例如它可能用EJBs和ColdFusionComonents这样的构件对象来处理数据库,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的冗余,增加了代码的重用性。
3. 控制器:
控制器接收用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面的超链接和发送Html表单时,控制器(Servlet)本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示处理返回数据。
现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。
2. MVC的优点:
1. 低耦合性
2. 高重用性和可适用性
3. 较低的生命周期成本
4. 快速部署
5. 可维护性
6. 有利于软件工程化管理
7.
3. MVC的缺点:
1. MVC并不适合小型、中等规模的应用程序
2. 设计阶段考虑到位
4. Android与 MVC
该项目MVC分层:
1. M(Model)模型层
Com.sharpandroid.domain:实体模型层,存放在程序中调用的实体类
Com.sharpandroid.service:业务模型层,存放在程序中用到的业务逻辑
2. V(View)视图层
Android很好的将显示层抽离,并放入res/目录中以xml的形式体现,虽然对于控件属性修改可以通过代码完成,但还是推荐将控件的属性在xml设置为佳,遇到动态修改的内容在采用硬编码的方式,这样增加了程序的可读性,也有利于软件后期的维护。
Main.xml 、shownews.xml、string.xml存放常量 drawable存放使用的图片文件
3. C(controller)控制层
Control是Activity的天职,你只要告诉Activity做什么,而至于怎么做,那是模型的事。
打电话程序:
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse(“tel:”+phoneno));
startActivity(intent);
<uses-permission android:name=”android.permission.CALL_PHONE”>
发送短信程序:
SmsManager smsManager = SmsManager.getDefault();//获得短信管理器
List<String> texts = smsManager.divideMessage(content)//将吵70个汉字的短信拆分
For(String text : texts ){
smsManager.sendTextMessage(mobile,null,text,null,null);
}
Toast.makeText(SMSActivity.this,R.string.success,Toast.LENGTH_LONG).show();
<uses-permission android:name=”android.permission.SEND_SMS”>
<uses-permission android:name=”android.permission.RECEIVED_SMS”>