单一职责原则的定义是:应该有且仅有一个原因引起类的变更。
对于单一职责原则,我的建议是接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化。
There should never be more than one reason for a class to change.
接口负责定义public属性和方法,并且声明与其他对象的依赖关系,抽象类负责公共构造部分的实现,实现类准确的实现业务逻辑,同时在适当的时候对父类进行细化。
注意 如果子类不能完整地实现父类的方法,或者父类的某些方法在子类中已经发生“畸变”,则建议断开父子继承关系,采用依赖、聚集、组合等关系代替继承。
尽量避免子类的“个性”,一旦子类有“个性”,这个子类和父类之间的关系就很难调和了,把子类当做父类使用,子类的“个性”被抹杀——委屈了点;把子类单独作为一个业务来使用,则会让代码间的耦合关系变得扑朔迷离——缺乏类替换的标准。
1.子类必须完全实现父类的方法
4.覆写或实现父类的方法时输出结果可以被缩小
世界上最难的事有两件:一是让人心甘情愿地把钱掏出来给你,二是把自己的思想灌输到别人的脑子里。
3.覆盖或实现父类的方法时输入参数可以被放大
❑高层模块不应该依赖低层模块,两者都应该依赖其抽象;❑抽象不应该依赖细节;❑细节应该依赖抽象。
模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的;❑接口或抽象类不依赖于实现类;❑实现类依赖接口或抽象类。
2.Setter方法传递依赖对象
3.接口声明依赖对象
❑任何类都不应该从具体类派生
❑尽量不要覆写基类的方法
❑接口要尽量小
❑接口要高内聚
用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。
《汉晋女德建构》内容简介:中国现代性,是以否定和反叛传统文化的姿态出现的,其中《列女传》、《女诫》等承载传统女德的重要文本
《Julia设计模式》内容简介:设计模式是开发可重用和可维护代码的基本技术。它提供了一套经过验证的解决方案,使开发人员可以快速解
《时尚的诞生》以通俗漫画的形式,配以妙趣横生的语言,讲述了26位近现代时尚史上最具代表性的伟大设计师与他们品牌的传奇故事,
《Python一行流:像专家一样写代码》内容简介:本书专注于从初学迈向进阶的Python编码技术:如何像专家一样写出优雅、准确、简洁高
内容介绍:文字在浩涉的文明岁月中幻化出千姿百态,于是,才会有这本文字美丽的书。从书中,也许你可读出一部中国文字美丽的历史
《无线通信》重点论述当前各类无线通信系统中具有普遍性和代表性的基本知识,包括基本的理论、问题、设计思路和分析方法。全书内
《ESP32-C3物联网工程开发实战》内容简介:ESP32-C3是搭载了开源指令集RISC-V的32位低功耗、低成本、安全的物联网芯片,本书也是该
《微视,这么玩才赚钱!》内容简介:这是一本介绍个人如何利用微视创业(赚钱)、企业如何通过微视迅速提升经营业绩(赚更多钱)的
《设计必修课:中文版After Effects CC动画制作+视频剪辑+特效包装设计教程(微课视频全彩版)》内容简介:本书After Effects 是Ad
「平面設計是帶給人夢想的幸福工作。從事平面設計,除了需要一點幽默和感性之外,擁有平面設計的基本知識更是必備條件。」本書收
《可穿戴医疗——移动医疗新浪潮》内容简介:可穿戴设备作为互联网下一阶段的智能载体,已经开始进入人们生活的方方面面,特别是在
“非常优秀!这绝对是UI设计模式领域最好的书,也是近年来交互设计领域最好的新书之一。本书清楚、简洁、引人入胜,既包括基础知
KenArnold曾任Sun公司研究中心的高级工程师,是面向对象设计与实现方面首屈一指的专家。他曾经是Jini技术的架构师之一、Sun公司J
《丁玲散文》内容简介:本书系我社中华散文珍藏本系列丛书之一。本集是丁玲之子蒋祖林先生的选编本,也是市面上唯一的丁玲散文选本
《摄影构图零基础入门教程》内容简介:构图是决定摄影作品成败的关键因素之一。本书对基本的构图常识、黄金构图的概念及实战应用、
《WOW!不一样的插画设计:Chunso的梦幻世界》内容简介:无论大干世界如何瞬息万变,书籍是不能为讲求速度而粗制滥造的。我们要做的
Office高级应用(Office 2010) 内容简介 本书是为 Office 2010 办公软件高级应用编写的配套教学用书,以当前行业需求及办公软件岗位实 ...
《城和市的语言:城市规划图解辞典》以文字和图片中的每个单词、名称或概念的字母为顺序进行编撰,同时以简洁的传记体介绍城市场所
《Ruby元编程(第2版)》在大量剖析实例代码的基础上循序渐进地介绍Ruby特有的实用编程技巧。通过分析案例、讲解例题、回顾Ruby类
Railsisafantastictoolforwebapplicationdevelopment,butitsAjax-driveninterfacessto...