string,max=70): ''' ''' return '\n'.join(textwrap.wrap(string)) + '\n' class NewsAgent... ''' def runDefaultSetup(): agent = NewsAgent...agent.distribute() if __name__ == '__main__': runDefaultSetup() 这个程序,首先从整体上进行分析,重点部分在于NewsAgent...有了这些分析,然后在来看主程序中的内容,主程序就是来给NewsAgent添加信息源和输出目的地址的。 这确实是个简单的程序,不过这个程序可是用到了分层了。
#make the string to the max linewidth return '\n'.join(textwrap.wrap(string))+'\n' class NewsAgent... """ class runDefaultSetup(): #the souce can modify by yourself agent=NewsAgent...当然这段代码我也稍微说下,最开始的类NewsAgent,接着是NewsItem,NNTPSource,SimpleWebSource,PlainDestination,HTMLDestination和runDefaultSetup...程序一运行就开始跑的是runDefaultSetup,这里就将NewsAgent实例化为agent,SimpleWebSource的3个参数分别是url, title和body,然后将其实例化为bbc
这个名词清单表明,需要下面这些主要的类:NewsAgent、NewsItem、Source、Destination。 各种新闻源构成了前端,目的地构成了后端,而新闻代理位于中间层。...根据这些决策,NewsAgent的方法distribute将如下: ? 这个方法遍历所有的新闻源,并创建一个新闻列表。然后,它遍历所有的目的地,并将完整的新闻列表提供给每个目的地。...只要新闻源和新闻目的地类正确的实现了必要的方法(get_items和receive_items),NewsAgent就会感到满意。(与其使用超类,不如使用协议。)...创建所有这些对象并将其添加到NewsAgent中后,调用了方法distribute。 再次实现的完整源代码如图所示。 ? ? ? ? ? 生成的页面news.html如图所示。 ?
这个程序,首先从整体上进行分析,重点部分在于NewsAgent,它的作用是存储新闻来源,存储目标地址,然后在分别调用来源服务器(NNTPSource以及SimpleWebSource)以及写新闻的类(PlainDestination...有了这些分析,然后在来看主程序中的内容,主程序就是来给NewsAgent添加信息源和输出目的地址的。 这确实是个简单的程序,不过这个程序可是用到了分层了
先上代码,然后再来逐一分析: 这个程序,首先从整体上进行分析,重点部分在于NewsAgent,它的作用是存储新闻来源,存储目标地址,然后在分别调用来源服务器(NNTPSource以及SimpleWebSource...有了这些分析,然后在来看主程序中的内容,主程序就是来给NewsAgent添加信息源和输出目的地址的。 这确实是个简单的程序,不过这个程序可是用到了分层了。
这个程序,首先从整体上进行分析,重点部分在于NewsAgent,它的作用是存储新闻来源,存储目标地址,然后在分别调用来源服务器(NNTPSource以及SimpleWebSource)以及写新闻的类(PlainDestination...有了这些分析,然后在来看主程序中的内容,主程序就是来给NewsAgent添加信息源和输出目的地址的。 这确实是个简单的程序,不过这个程序可是用到了分层了。
这个名词清单表明,需要下 面这些主要的类:NewsAgent、NewsItem、Source和Destination。 各种新闻源构成了前端,目的地构成了后端,而新闻代理位于中间层。...NewsItem: def __init__(self, title, body): self.title = title self.body = body ② NewsAgent...通过NewsAgent对象,将数据源和目的地加入到列表中,然后在其distribute方法中,把从数据源获取的数据发送给目的地。
领取专属 10元无门槛券
手把手带您无忧上云