[概念] SRP 单一职责原则的问题

楼主: stillboy (joey)   2017-08-22 11:47:32
小弟最近公司专案需要 开始接触到设计模式
使用的语言是 Javascript 目前自己自修看了几本书
觉得很受用 但面临到自己的专案上 满没有头绪的
有两个问题想跟前辈们讨论
(1)
假设我一个初始化函数叫做 init (),在没有设计模式的情况下,code如下
class Player {
init () {
if(player) {
destroy(player)
} else {
player = new Player()
return player
}
}
简单来说 如果player这个变量存在 就destory 没有就为他创造一个实体
对于init而言,它做了
1. 判断player是否有值
2. 创造一个player
3. destroy
所以以上的class就会变成
class Player {
init() { }
isPlayerExisted () { }
createPlayer () { }
destroy () { }
}
思考了一下 写成
class Player {
init() {
if ( isPlayerExisted() ) {
destroy()
} else {
createPlayer ()
}
}
但感觉好像跟原本的没什么差别..只是实作被包起来了..
而这样感觉init函数还是符合SRP原则吗?
会这样说的原因是 init 其实还是做了不只一个职责..
※ 编辑: stillboy (114.32.177.86), 08/22/2017 11:51:20

Links booklink

Contact Us: admin [ a t ] ucptt.com