面向對象的設計方法是將研究對象抽象爲類,從中提取研究對象共有的方法和屬性,從而高效的實現代碼複用。
消息的訂閱與發佈可以抽象爲以下的幾種基類:
消息類:定義消息的類型(標題、內容、長度等等),消息的輸出函數;
發佈器:消息的打印,處理;
訂閱器:訂閱者的增刪改查;
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)