设计原则一:针对接口编程,不针对实现编程
定义:
接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此 这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
接口是对抽象的抽象。
接口就是标准,就是承诺。
针对接口编程,不要针对具体编程是依赖倒转原则的另外一种表述。
针对接口编程又称为面向接口编程,针对接口编程就是要先设计一系列的接口,把设计和实现分离开,使用时只需引用接口即可,也由于系统各部分的解耦合。如下图所示:
设计原则二:单一职责原则
原文:http://www.cnblogs.com/guoshiandroid/archive/2010/06/08/1754261.html
定义:
单一职责原则(Single Responsibility Principle ):就一个类而言,应该仅有一个引起它变化的原因。换句话说,一个类的功能要单一,只做与它相关的事情。
如果一个完成额外的不太相关的功能或者完成其它类的功能,这就会使得一个引起一个类变化的因素太多,如果类的一处需要修改,其它和它相关连的代码都会受到影响,这就直接导致一旦系统出现了问题就难以调试困境,同时这样也非常不利于维护。
遵循单一职责原则也会给测试带来极大的方便。
违背单一职责原则会降低类的内聚性、增强类的耦合性。
违背单一职责原则会导致错误呈现几何级数的增长,因为类之间的关联性太强,每一个类都会对其他类有影响,一个类出现错误极可能会导致其他相关联的类出现错误,而且关联类联合起来还有可能产生新的错误。
在软件开发中,人们越来越意识到单一职责原则的重要性,美工只需要负责美工界面,业务层的人员只需写好业务代码,而数据层的人员只需关注数据层的工作即可。这样每个人都以自己专程协同工作,工作效率就得到了大大的提高了。
现在软件开发的经典模式MVC模式,也非常好的体现了单一职责原则。MVC(Model-View-Control)就是模型、视图、控制器三层架构模式,其中M是指数据模型、V是指用户界面、C则是控制器。采用MVC模式使得数据和表现相分离,同一个数据层可以有不同的显示层。数据层和显示层的改变互不影响。这就非常有利于提高软件的可维护性和可复用性,同时也方便了软件的管理工作和提高软件开发效率。
如下图所示:
已有应用简介:我们这里已经以MVC模式为例来分析单一职责原则的应用。
模型车、视图层、控制层各司其责、相互独立,一个模型可以有多个视图,一个视图可以有多个控制器,同样的一个控制器也可以由多个模型。MVC基本的处理流程如下: 用户与视图交互,视图接受并反馈用户的动作;视图把用户的请求传给相应的控制器,有控制器决定调用哪个模型,然后由模型调用相应的业务逻辑对用户的请求进行加工处理,如果需要返回数据,模型会把相应的数据返回给控制,由控制器调用相应的视图,最终由视图格式化和渲染返回的数据,以一种对用户尽可能友好的方式展现给用户。
读Android之大话设计模式--六种设计原则,布布扣,bubuko.com
原文:http://www.cnblogs.com/wangziqiang/p/3582030.html