单一职责原则的定义是:应该有且仅有一个原因引起类的变更。
对于单一职责原则,我的建议是接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化。
There should never be more than one reason for a class to change.
接口负责定义public属性和方法,并且声明与其他对象的依赖关系,抽象类负责公共构造部分的实现,实现类准确的实现业务逻辑,同时在适当的时候对父类进行细化。
注意 如果子类不能完整地实现父类的方法,或者父类的某些方法在子类中已经发生“畸变”,则建议断开父子继承关系,采用依赖、聚集、组合等关系代替继承。
尽量避免子类的“个性”,一旦子类有“个性”,这个子类和父类之间的关系就很难调和了,把子类当做父类使用,子类的“个性”被抹杀——委屈了点;把子类单独作为一个业务来使用,则会让代码间的耦合关系变得扑朔迷离——缺乏类替换的标准。
1.子类必须完全实现父类的方法
4.覆写或实现父类的方法时输出结果可以被缩小
世界上最难的事有两件:一是让人心甘情愿地把钱掏出来给你,二是把自己的思想灌输到别人的脑子里。
3.覆盖或实现父类的方法时输入参数可以被放大
❑高层模块不应该依赖低层模块,两者都应该依赖其抽象;❑抽象不应该依赖细节;❑细节应该依赖抽象。
模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的;❑接口或抽象类不依赖于实现类;❑实现类依赖接口或抽象类。
2.Setter方法传递依赖对象
3.接口声明依赖对象
❑任何类都不应该从具体类派生
❑尽量不要覆写基类的方法
❑接口要尽量小
❑接口要高内聚
用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。
Dreamweaver8\Flash8\Fireworks8网页制作从入门到精通 本书特色 《Dreamweaver 8、Flash 8、Fireworks 8...
《从零开始学Android开发》内容简介:本书从基本的Java语法开始讲解,通过具体的实例介绍Android开发的全过程,从零基础到进阶全覆
《C++程序设计教程》是《C++程序设计教程》的第二版。然而从指导思想、内容结构、写作特点等方面,都以全新的面貌呈现于读者。全
《锂离子电池智能制造》内容简介:本书是“21700动力锂电池智能制造新模式项目”的结题成果,项目归口管理部门是工业和信息化部。本
劳伦斯·莱斯格的著作《代码》问世便震动了学界和业界,被人称为“也许是迄今为止互联网领域最重要的书籍”,也被一些学者称为“
深入浅出AutoCAD.NET二次开发B4003 本书特色 《深入浅出AutoCAD.NET二次开发(附光盘)》由李冠亿编,全书结构合理、图文并茂、讲解生动、实...
《Rust权威指南》内容简介:本书由Rust核心开发团队编写而成,由浅入深地探讨了Rust语言的方方面面。从学习函数、选择数据结构及绑
本书以科学研究的成果为基础,以作者丰富的实战经验为支撑,简明扼要地提炼出系统思维的规律,为我们阐释一种卓有成效的洞悉混沌
《翻盘》内容简介:被动还是主动,决定人的生命层次。处于被动地位的人,越顺受越难受;占据主动的人,越征战越强悍。而“翻盘”的
《程履绎传》内容简介:雨花台烈士传丛书包括《李得钊传》《骆何民传》《许金元传》《蒋云传》《张应春传》《陈履真传》《刘重民传
移动互联网时代的工作 本书特色 本书介绍移动互联时代下移动工作和移动办公的趋势、方法、工具和资源,全书分为工作的革命和移动工作的应用两篇,共包含 8部分内容,主...
《国际顶尖插画艺术家的创造力x商业力》内容简介:艺术与商业日渐和谐,划分高尚艺术与流行文化的分界线逐渐模糊,艺术家的身份也
《中国社会建设现代化之路》内容简介:本书中国社会建设现代化,是一个崭新的重大理论与实践课题。作者积多年社会建设理论与实践经
《MATLAB图像处理超级学习手册》内容简介:本书以MATLAB R2013a版本的功能叙述为主,由浅入深全面地讲解了MATLAB软件在图像处理方面
《App+软件+游戏+网站界面设计教程》内容简介:如今,人们对各种类型的UI界面的要求越来越高,为满足广大UI设计者的需求,本书向读
《看图自学吉他》内容简介:这是一本吉他基础教程,主要针对吉他初学者。在基础知识部分从最基本的吉他调弦、琴弦安装、吉他选购、
《王阳明的智慧》内容简介:王阳明是中国历史上极为重要的思想家,他的“心即理”“知行合一”“致良知”“万物一体”等主张,不仅
《信号与系统辅导与题解(与美国MIT麻省理工本科教材配套)》是奥本海姆教授主编的、电子工业出版社引进出版的《信号与系统》(第2
本书是以MATLAB6.5版本为依托,介绍了MATLAB在通信工程中的各个方面地应用,是一本非常全面地介绍MATLAB通信仿真的书籍。该书作
Thetwomainthemesofthisbook,logicandcomplexity,arebothessentialforunderstandingth...