面向对象的七大基本原则和实例详解

单一职责原则    定义:一个类只负责一个领域的相应职责。
开闭原则 定义:软件实体应对扩展开放,而对修改关闭。
里氏替换原则   定义:所有引用基类的对象能够透明的使用其子类的对象。
依赖倒转原则   定义:抽象不应该依赖于细节,细节依赖于抽象。
接口隔离原则   定义:使用多个专门的接口,而不是使用单一总接口。
合成复用原则   定义:尽量使用对象组合,而不是继承来达到复合目的。
迪米特法则   定义:一个软件实体应当尽可能少的与其它实体发生相互作用。


1.单一职责原则 : 每个类型(包括接口和抽象)功能要求单一,只对外负责一件事情,应该仅有一个原因引起类的变更。不要让一个类存在多个改变的理由。只应该做和一个任务相关的业务,不应该把过多的业务放在一个类中完成。单一职责原则不只是面向对象编程思想所特有的,只要是模块化的程序设计,都适用单一职责原则。

文件:

面向对象的七大基本原则和实例详解

把不同类型的文件放在不同的文件夹里做区分,不同功能的文件的划分,文件之间相互引用

代码:

/** * @author 刘贵生 * @date:2018-11-2 * @information:页面初始化数据 * @param: model 搜索条件 */ pageInit: function ({dispatch},model) { // 返回一个promise,先去请求表头数据,成功之后去请求表格数据和三个考勤率 return new Promise ((resolve,reject) => { dispatch('getHeaderData') resolve() }).then (() => { let p1 = new Promise ((resolve,reject) => { dispatch('getTableData',model) resolve() }) let p2 = new Promise ((resolve,reject) => { dispatch('searchPercentage',model) resolve() }) Promise.all([p1,p2]) }) }, /** * @author 刘贵生 * @date:2018-11-8 * @infromation: 请求表头数据 */ getHeaderData: function ({commit}) { request.searchTableHeader().then(res => { commit(type.TABLEHEADER,res.data.result) }) }, /** * @author 刘贵生 * @date:2018-11-2 * @information: 请求表格数据 * @param: model 查询的条件 */ getTableData: function ({state,commit},model) { // 打开正在加载 state.loading = true let obj = { query:model, pages:state.pages, sort: state.sort } return request.searchTableData(obj).then(res => { // 表格数据和总条数 let { data, totalSize } = res.data.result // 获取每页请求多少条 let { size } = state.pages // 保存数据的总长度 let num = data.length // 如果数据大于0条并且小于每页显示条数,用空数据补齐 if(num > 0 && num < size) { for(let i = 0;i<size-num;i++) data.push({}) } // 向mutation提交状态 commit(type.TABLEDATA, data) commit(type.TOTALSIZE, totalSize) // 关闭正在加载 state.loading = false }) }, /** * @author 刘贵生 * @date:2018-11-06 * @information: 查询三个考勤率 */ searchPercentage: function ({ commit },model) { request.searchPercentage(model).then(res => { commit(type.PERCENTAGE,res.data.result) }) },

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpydpp.html