我不同意你对 Decoupling 的理解。解耦不仅与哪些对象创建其他对象有关,还与哪些对象了解其他对象的行为以及(至关重要)在 Word 更改时(您的示例)文档中需要更改的内容有关。
但是,我也真的不明白这两个短语是什么意思:
我只有一个用于 Word 的对象和一个用于 Document 的对象。我不会为每个新文档或单词创建一个新对象。我将整个文档的列表存储在 Document 中,并将整个单词的列表存储在 Word 中
从文档开始。这个类的对象可以做什么?你好像在说
class Document {
private List<??OfWhat??> allDocuments;
}
如果类 Document 包含一个列表,它是什么列表?我认为你需要:
class Shelf {
private List<Document> allDocuments;
}
class Document{
private List<Word> wordInOneDocument;
}
class Word {
private String wordContents;
}
现在 Shelf 可以提供诸如 getRecentDocumets() findDocumentsContaining(String text) 和 Document 可以包含 getWordCount() 和 insertParagraph(List, START) 等方法;等等。
为了进行更好的讨论,我们需要更多地了解您的想法,更多地了解行为。
我同意你的一般想法,即除了 Document 和 Word 之外还有其他东西。可以合理调用 createDocument() 和 insertParagraph() 等方法的东西