用面向對象的方法模仿消息的訂閱器與發佈器

面向對象的設計方法是將研究對象抽象爲類,從中提取研究對象共有的方法和屬性,從而高效的實現代碼複用。

消息的訂閱與發佈可以抽象爲以下的幾種基類:
消息類:定義消息的類型(標題、內容、長度等等),消息的輸出函數;
發佈器:消息的打印,處理;
訂閱器:訂閱者的增刪改查;

class News():
	def __init__(self,name,title,kind,content):
		self.name=name
		self.title=title
		self.kind=kind
		self.content=content
	def printf(self):
		print("姓名:{}  標題:{}  類型:{}  內容:{}".format(self.name,self.title,self.kind,self.content))

class Subscriber():
	def __init__(self,name):
		self.name=name
		self.SubscribersList=[]

	def SubscriberAdd(self,subscriber):
		self.SubscribersList.append(subscriber) 

class Publisher():
	def __init__(self,name):
		self.name=name
		self.SubscribersList=[]
		self.NewsList=[]

	def NewsListAdd(self,news):
		self.NewsList.append(news)

	def NewsPublish(self,Subscribers):
		for subscriber in Subscribers.SubscribersList:
			print("subscriber: {}       ".format(subscriber),end=' ')
			for news in self.NewsList:
				news.printf()

WeiBo=Publisher("hello world")
User=Subscriber("jida")
User.SubscriberAdd("jack")
User.SubscriberAdd("Lucy")
WeiBo.NewsListAdd(News("Mary",'message','string','this is my object'))
WeiBo.NewsPublish(User)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章