一、问题引入 一个视图控制器对应一个UI界面,那么UI界面的跳转,底层就得实现视图控制器的跳转。 那么当界面多,且界面跳转情况复杂时,需在视图控制器中添加业务逻辑,并且增加视图控制器之间的藕合度。在java中网页跳转有xml解决此问题,但是在iOS中,系统并没有提供解决方案。 二、认识URL NSS
分类:
Web程序 时间:
2016-02-29 02:00:46
阅读次数:
231
“单一职责原则”的官方定义:
就一个类而言,应该仅有一个引起它变化的原因。
大白话讲:
在设计类的时候,应该要让每一个类仅有一个职责,每一个类只做一类事情,这就是单一职责原则。
“每一个类只做一类事情”的好处:
如果一个类承担的职责过多,就等于把这些职责藕合在一起,一个职责的变化可能会削弱或抑制这个类完成其他职责的能力。
这种藕合会导致脆弱的设计,当变化发生时,设计会遭到意想不到的破坏。
在程序设计时,我们需要在类的职责分离上多加思考,做到单一职责,这样你的代码才是真正的易维护、易复用、灵活多样。...
分类:
其他好文 时间:
2015-08-31 13:43:51
阅读次数:
131
策略模式的作用:
1.使用了策略模式后,如果需要增加一种策略,那么只需要创建一个实现了Strategy接口的子类,并重写其中的函数,然后在Context的构造函数中增加这种子类的判断。客户端的代码、Context中contextInterface()的代码无需作任何修改。
2.策略模式与简单工厂模式的相似之处:
Context的构造函数、Factory的getBean()都是用来判断创建何种类型的对象的。
工厂模式和策略模式都能够将“客户端对究竟创建何种类型的判断”转移到Factory/Context中,从...
分类:
其他好文 时间:
2015-08-31 11:52:56
阅读次数:
276
“建造者模式”生活中的例子:
肯德基做汉堡的过程都是有严格的规范的,不管是麦香鸡腿堡还是新奥尔良烤鸡腿堡,他们的制作步骤都是有严格规定,做汉堡的人既不能多做一步,也不能少做一步。对于不同的汉堡来说,虽然每一步加的料所有不同,但做汉堡的步骤都是一样的。因为有了对做汉堡过程的严格控制,因而全国所有的肯德基店做出来的汉堡味道都是一样的。
这些汉堡就是一个个对象,刚被创建出来的时候它就是两片面包片,没有任何内容;然后我们把它扔到一个流水线上,这个流水线会按照指定的步骤往汉堡对象中逐步添加材料;当汉堡走完一遍流程后,...
分类:
其他好文 时间:
2015-08-30 14:22:06
阅读次数:
135
实际生活中的例子:
现在流行炒股,股民一般都手持好多个股票,而股民每天需要关注手中N个股票的动向,随时针对不同的股票作出不同的决策,这样感觉心好累;于是有的人选择买基金。基金本质上还是炒股票,只不过基金机构拿了投资人的钱买了N个股票,而我们只要购买一个基金就够了,对N个股票的管理就交给基金机构去折腾了,我们瞬间感觉好轻松。
代码世界也是一样,每个股票都是一个类,每个基金都是一个类,股民就是这些类的使用者。如果股民直接操作多个股票类,那会导致股民类中的操作非常复杂,那么股民类和整个系统的藕合度也就很高。如果引...
分类:
其他好文 时间:
2015-08-30 11:22:22
阅读次数:
219
本文以一个项目中通用的验证类来举例说明如何使用自定义Attribute来扩展元数据。在项目中,我们为了保证各个层次之间的松藕合,通常把在各个层次之间传递数据的封装在一个称为实体类的类中,比如ActionFrom[csharp]view plaincopyusingSystem;namespaceAt...
1.1 AudioPolicy Service在AudioFlinger小节,我们反复强调它只是策略的执行者,而AudioPolicyService则是策略的制定者。这种分离方式有效地降低了整个系统的藕合性,而且为各个模块独立扩展功能提供了保障。1.1.1 AudioPolicyService概述汉...
分类:
移动开发 时间:
2015-01-08 20:09:40
阅读次数:
307
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6685853在Android系统中,Activity和Service是应用程序的核心组件,它们以松藕合的方式组合在一起构成了一个完整的应用程序,这得...
分类:
移动开发 时间:
2014-12-04 11:29:36
阅读次数:
174
XACS系统基于Java语言,采用主流的开源技术框架,在模块设计上遵循低藕合,高内聚的原则,达到普通应用下开发简单快速,易上手;复杂环境大规模应用情况下易整合,易部署;良好的模块化设计可以满足方便的和其它业务系统或工单管系统集成,拓展北向接口功能。
XACS采用的技术及框架有:
1. 数据库MySQL
在XACS中集成了MySQL数据库,可以控制My...
分类:
其他好文 时间:
2014-11-27 16:21:32
阅读次数:
1171
以下两种情况是我在开发过程中遇到的,一种是代码使用pushViewController,另一种是storyboard直接使用push。之前也查阅了很多关于隐藏底部tabbar的资料,但是要么使用起来麻烦,要么就是藕合度高代码不规范(这里有点代码洁癖,当前类相关的事务应该写在本类中)。
1、使用pushViewController
如A->B;A是列表页,带有tabbar;B是内容页,不需要ta...
分类:
移动开发 时间:
2014-11-06 14:53:28
阅读次数:
193