设计模式|软件设计原则
本文主要介绍软件设计中运用到的几个主要的设计原则,“单一职责原则” “开放-封闭原则” “最少知识原则”
单一职责原则 SRP:Single responsibility principle 原则体现为:一个对象(方法或者类)只做一件事情
eg: 使用单例模式创建一个登陆浮窗, 最开始代码如下:
var createLoginLayer = (function () {
var div;
return function () {
if(!div) {
div = document.createElement('div')
div.innerHTML = "登陆浮窗"
div.style.display = 'none'
document.body.appendChild(div)
}
return div
}
})
使用单一原则改动,把单例的职责和创建登陆浮窗的职责分别封装在两个方法中,这两个方法可以独立变化而互不影响,当它们连接在一起的时候,就完成了创建唯一浮窗的功能,代码如下:
var createLoginLayer = function () {
var div = document.createElement('div')
div.innerHTML = "登陆浮窗"
div.style.display = 'none'
document.body.appendChild(div)
return div
}var getSingle = function (fn) {
var result
return function () {
return result || (result = fn.apply(this, arguments))
}
}var createSingleLoginLayer = getSingle(createLoginLayer)
createSingleLoginLayer()
最少知识原则 迪米特法则(Law of Demeter)又叫作最少知道原则(Least Knowledge Principle 简写LKP)软件实体应该与其他实体尽可能少的发生作用和联系,这里的软件实体是一个广义的概念,不仅包括对象,还包括系统、类、模块、函数、变量等。
开放-封闭原则 开放-封闭原则最早由Eiffel 语言的设计者Bertrand Meyer 在其著作 Object-Oriented Software Construction中提出。它的定义如下:
软件实体(类、模块、函数)等应该是可以扩展的,但是不可修改。
【设计模式|软件设计原则】开放封闭原则在设计模式中的体现是装饰着模式中,还有在 发布-订阅模式、模板方法模式、策略模式、代理模式、职责链模式中皆有体现。
推荐阅读
- PMSJ寻平面设计师之现代(Hyundai)
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 爱琐搭配(喜欢复古、冷淡,像这种双环设计的气质耳环)
- 别墅庭院设计,不同的别墅庭院设计也给人视觉上完全不一样的!
- 中国MES系统软件随工业化成长
- 数据库设计与优化
- 迅捷流程图制作软件的使用方法!
- 设计模式-代理模式-Proxy
- 我的软件测试开发工程师书单
- 怎么将桌面上的CAD图纸添加到软件中进行BMP格式转换()