【发布时间】:2019-06-28 02:35:03
【问题描述】:
我正在创建一个新的简单应用来标记和删除给定文本中的停用词。为此,我创建了以下文件:
// Stopword.js
class StopWord {
constructor (stopWords) {
this.stopWords = stopWords
}
remove (value) {
// do whatever we need to remove this.stopWords from the passed value and return it
}
}
// PreProcess.js
const StopWord = require('./StopWord')
class PreProcess {
setValue (value) {
this.value = value
return this
}
removeStopWords (stopWords) {
const stopWord = new StopWord(stopWords)
return stopWord.remove(this.value)
}
}
// Indexed.js
class Indexer {
setValue (value) {
this.value = value
return this
}
setStopWords (stopWords) {
this.stopWords = stopWords
return this
}
index () {
return this.preprocess
.setValue(this.value)
.removeStopWords(stopWords)
}
}
// main.js
const indexer = new Indexer()
const result = indexer
.setValue('a sample text ')
.setStopWords(['a', 'an'])
.index()
console.log(result)
假设,在某些情况下,我们想从数据库中动态加载停用词(不同的用户使用不同的停用词)。出现的第一个问题是我们需要在哪个类中从数据库中加载停用词?
很明显,PreProcess 类是使用依赖注入注入索引器的。 StopWord 类也可以使用 DI 注入,但我想知道这是否足够好。第二个问题是应该将哪些类注入到哪些?
【问题讨论】:
标签: javascript dependency-injection architecture software-design single-responsibility-principle