diff --git a/基本结构/051享元模式/readme071.txt b/基本结构/051享元模式/readme071.txt deleted file mode 100644 index 96cb03e..0000000 --- a/基本结构/051享元模式/readme071.txt +++ /dev/null @@ -1,8 +0,0 @@ -ԪģʽһֽṹģʽԪģʽУΪɹģԱʹãÿжµĶ - -дͬĴƵʱҪƵǰ10ĵʣʱҪƵǰ20ĵʣǾҪƵͳÿƵͳ洢ڲ״̬ -ôϵͳڴռÿܻܴ£Ԫģʽͬ͵ĴƵͳÿ͵ĴƵͳֻ贴һʵȻͨòͬIJԻ -ÿͨͬڲ״̬˶Ĵڴռóɱ - -磬Ҫ3ļȡƵǰʮĵʣ3ļȡƵǰʮĵʣôֻҪ2Ƶͳÿ󶼴洢ͬڲ״̬ȡĴ -һȡǰʮĵʣһȡǰʮĵʣô6 \ No newline at end of file diff --git a/基本结构/051享元模式/tf-38.py b/基本结构/051享元模式/tf-38.py index ff9c8b9..32f835d 100644 --- a/基本结构/051享元模式/tf-38.py +++ b/基本结构/051享元模式/tf-38.py @@ -1,9 +1,12 @@ # -*- encoding:utf-8 -*- from cppy.cp_util import * -'''享元模式 享元模式是一种结构型设计模式,在享元模式中,对象被设计为可共享的,可以被多个上下文使用,而不必在每个上下文中都创建新的对象。 -如果我们有大量不同的词频分析需求,有时需要词频前10的单词,有时需要词频前20的单词,有时还需要限定词汇的长度,那就需要创建多个词频统计器,每个词频统计器都独立创建并存储其内部状态, -那么系统的内存占用可能会很大,在这种情况下,享元模式共享相同类型的词频统计器对象,每种类型的词频统计器只需创建一个共享实例,然后通过设置不同的参数个性化 -每个对象,通过共享相同的内部状态,降低了对象的创建和内存占用成本。 +''' +享元模式 享元模式是一种结构型设计模式,在享元模式中,对象被设计为可共享的,可以被多个上下文使用,而不必在每个上下文中都创建新的对象。 +如果我们有大量不同的词频分析需求,有时需要词频前10的单词,有时需要词频前20的单词,有时还需要限定词汇的长度,那就需要创建多个词频统计器,每个词频统 +计器都独立创建并存储其内部状态,那么系统的内存占用可能会很大,在这种情况下,享元模式共享相同类型的词频统计器对象,每种类型的词频统计器只需创建一个 +共享实例,然后通过设置不同的参数个性化每个对象,通过共享相同的内部状态,降低了对象的创建和内存占用成本。 +例如,我需要对3个文件获取词频前十的单词,对另外3个文件获取词频前二十的单词,那么我只需要创建2个词频统计器对象,每个对象存储相同的内部状态,一个对象 +获取前十的单词,一个对象获取前二十的单词,而不用创建6个对象 ''' #以需要的词频数量分类 # class Type(number): @@ -42,6 +45,8 @@ def process_command(factory: WordFrequencyControllerFactory, number: str): controller_type = number WordFrequencyController = factory.get_WordFrequencyController(controller_type,testfilepath) WordFrequencyController.print_word_freqs(int(number)) + + if __name__ == "__main__": factory = WordFrequencyControllerFactory() while True: