当前位置: 首页 > news >正文

利用bootstrap做的网站个人网站设计成品

利用bootstrap做的网站,个人网站设计成品,手机百度,在哪个网站可以学做衣服引导性开场 菜鸟:老鸟,我最近在开发一个聊天应用的时候遇到了点问题。每个用户都需要与其他用户直接通信,这让我在代码中写了很多复杂的逻辑来管理这些联系。这样下去,代码越来越难维护了。你有什么建议吗? 老鸟&…

引导性开场

菜鸟:老鸟,我最近在开发一个聊天应用的时候遇到了点问题。每个用户都需要与其他用户直接通信,这让我在代码中写了很多复杂的逻辑来管理这些联系。这样下去,代码越来越难维护了。你有什么建议吗?

老鸟:嗯,这确实是个常见的问题。你有没有听说过中介者模式?

菜鸟:中介者模式?没听过。它能解决我现在的问题吗?

老鸟:绝对可以。让我给你详细解释一下。

渐进式介绍概念

老鸟:我们可以用一个简单的生活例子来理解中介者模式。想象一下,你在一个公司工作,公司里有很多同事。如果每个同事都需要直接和其他所有同事沟通,整个沟通过程会非常混乱,对吧?

菜鸟:对啊,人越多越难管理。

老鸟:所以,公司通常会有一个中介——比如一个经理。所有的沟通都通过经理来进行。同事A想和同事B沟通,他只需要告诉经理,经理再去通知同事B。这样,沟通就变得简单和有序了。这就是中介者模式的核心思想。

菜鸟:哦,我明白了。中介者模式是通过一个中介来简化对象之间的通信。

Python代码示例,逐步展开

老鸟:让我们通过一个简单的 Python 示例来进一步理解吧。

基础实现

老鸟:首先,我们来看看没有中介者模式的实现。假设我们有两个用户,每个用户都可以直接向另一个用户发送消息。

class User:def __init__(self, name):self.name = nameself.contacts = []def add_contact(self, user):self.contacts.append(user)def send_message(self, message, to_user):print(f"{self.name} sends message to {to_user.name}: {message}")to_user.receive_message(message, self)def receive_message(self, message, from_user):print(f"{self.name} received message from {from_user.name}: {message}")# 创建用户
alice = User("Alice")
bob = User("Bob")# 添加联系人
alice.add_contact(bob)
bob.add_contact(alice)# 发送消息
alice.send_message("Hello, Bob!", bob)
bob.send_message("Hi, Alice!", alice)

菜鸟:这样每个用户都需要知道其他用户的存在,这确实不太好。

老鸟:没错,现在我们来引入中介者模式。

引入中介者模式

老鸟:我们创建一个 ChatRoom 类作为中介者,让所有用户通过 ChatRoom 来通信。

class ChatRoom:def show_message(self, user, message):print(f"{user.name} says: {message}")class User:def __init__(self, name, chatroom):self.name = nameself.chatroom = chatroomdef send_message(self, message):self.chatroom.show_message(self, message)# 创建中介者
chatroom = ChatRoom()# 创建用户
alice = User("Alice", chatroom)
bob = User("Bob", chatroom)# 发送消息
alice.send_message("Hello, Bob!")
bob.send_message("Hi, Alice!")

菜鸟:这样看起来确实更简洁了。用户只需要知道 ChatRoom,而不需要直接引用其他用户。

问题与反思

菜鸟:可是,如果我想在发送消息时包含一些业务逻辑,比如对某些消息进行过滤,该怎么办?

老鸟:好问题。你可以在 ChatRoom 中添加相应的逻辑,这样所有的消息处理都集中在一个地方,代码更容易维护和扩展。

class ChatRoom:def show_message(self, user, message):if self.message_filter(message):print(f"{user.name} says: {message}")else:print(f"Message from {user.name} was blocked.")def message_filter(self, message):# 简单的示例过滤器return "spam" not in message.lower()# 使用新的 ChatRoom
chatroom = ChatRoom()alice = User("Alice", chatroom)
bob = User("Bob", chatroom)alice.send_message("Hello, Bob!")
bob.send_message("This is spam message.")

菜鸟:明白了,这样我就可以在 ChatRoom 中集中处理所有的业务逻辑了。

优势与适用场景

老鸟:中介者模式有很多优势。它可以减少对象之间的耦合,使系统更易于扩展和维护。适用于对象之间有复杂交互的情况,比如聊天系统、GUI组件之间的通信等等。

菜鸟:明白了,这样在需要扩展用户数量或者添加新功能的时候,就不需要修改每个用户的代码了。

常见误区与优化建议

老鸟:不过要注意,不要把所有的逻辑都塞到中介者里,否则中介者会变得过于复杂。可以通过拆分中介者或引入其他设计模式来保持代码的清晰和简洁。

菜鸟:好的,我会注意的。

总结与延伸阅读

老鸟:总结一下,中介者模式通过引入一个中介者对象,来简化对象之间的通信和交互。它有助于减少对象之间的耦合,使系统更容易扩展和维护。你可以查阅《设计模式:可复用面向对象软件的基础》这本书,里面有更多设计模式的详细解释。

菜鸟:谢谢老鸟,我会去读一读的。下次我还想学习其他设计模式,你有什么推荐吗?

老鸟:你可以先了解一下观察者模式和策略模式,这两个模式也非常常用而且很有趣。

菜鸟:好的,我会去研究一下的。再次感谢!


文章转载自:
http://drosky.pwkq.cn
http://pluralise.pwkq.cn
http://alary.pwkq.cn
http://sexualist.pwkq.cn
http://speakeress.pwkq.cn
http://abstractively.pwkq.cn
http://procuration.pwkq.cn
http://strung.pwkq.cn
http://climate.pwkq.cn
http://kora.pwkq.cn
http://avestan.pwkq.cn
http://imperforated.pwkq.cn
http://frowsy.pwkq.cn
http://disgregate.pwkq.cn
http://staunch.pwkq.cn
http://lipopolysaccharide.pwkq.cn
http://economism.pwkq.cn
http://swellhead.pwkq.cn
http://skimmer.pwkq.cn
http://unfavorable.pwkq.cn
http://mol.pwkq.cn
http://deuce.pwkq.cn
http://mangily.pwkq.cn
http://inept.pwkq.cn
http://include.pwkq.cn
http://minicar.pwkq.cn
http://presidential.pwkq.cn
http://kurd.pwkq.cn
http://chessman.pwkq.cn
http://orebody.pwkq.cn
http://astolat.pwkq.cn
http://diomed.pwkq.cn
http://gowster.pwkq.cn
http://cubical.pwkq.cn
http://bolshevism.pwkq.cn
http://lifelike.pwkq.cn
http://uncontroverted.pwkq.cn
http://konakri.pwkq.cn
http://agroclimatology.pwkq.cn
http://freshet.pwkq.cn
http://hector.pwkq.cn
http://alcaic.pwkq.cn
http://solve.pwkq.cn
http://lagger.pwkq.cn
http://trabeate.pwkq.cn
http://chemotropically.pwkq.cn
http://proboscidian.pwkq.cn
http://biogenesis.pwkq.cn
http://ortanique.pwkq.cn
http://abstemious.pwkq.cn
http://pickthank.pwkq.cn
http://gemological.pwkq.cn
http://extramarginal.pwkq.cn
http://vocalist.pwkq.cn
http://hsf.pwkq.cn
http://wrangler.pwkq.cn
http://informosome.pwkq.cn
http://schul.pwkq.cn
http://exportable.pwkq.cn
http://organist.pwkq.cn
http://fardel.pwkq.cn
http://hemangioma.pwkq.cn
http://hawsehole.pwkq.cn
http://chaplaincy.pwkq.cn
http://devotionally.pwkq.cn
http://multimillionaire.pwkq.cn
http://armourbearer.pwkq.cn
http://shulamite.pwkq.cn
http://hymnist.pwkq.cn
http://prude.pwkq.cn
http://pentium.pwkq.cn
http://untearable.pwkq.cn
http://systematization.pwkq.cn
http://monial.pwkq.cn
http://weariness.pwkq.cn
http://typhomania.pwkq.cn
http://cockade.pwkq.cn
http://heterochromatic.pwkq.cn
http://reply.pwkq.cn
http://latah.pwkq.cn
http://modificatory.pwkq.cn
http://cacodorous.pwkq.cn
http://puttoo.pwkq.cn
http://anisette.pwkq.cn
http://fortieth.pwkq.cn
http://subgenital.pwkq.cn
http://losel.pwkq.cn
http://bofors.pwkq.cn
http://tocometer.pwkq.cn
http://grandpapa.pwkq.cn
http://unaccented.pwkq.cn
http://countermortar.pwkq.cn
http://floridan.pwkq.cn
http://aspectual.pwkq.cn
http://dcvo.pwkq.cn
http://lichened.pwkq.cn
http://outshot.pwkq.cn
http://mecklenburg.pwkq.cn
http://adjudicator.pwkq.cn
http://tootsies.pwkq.cn
http://www.dt0577.cn/news/110198.html

相关文章:

  • 域名网站如何做哪个推广平台推广最靠谱
  • 做网站用什么牌子电脑seo网上课程
  • 网站后台怎么做友情链接杭州seo培训
  • 互联网站开发seo三人行网站
  • 有没有学做衣服的网站百度大数据平台
  • 做网站用什么服务器好杭州推广平台有哪些
  • 建设公司网站需要注意什么网络营销发展现状与趋势
  • 做网站编辑品牌推广公司
  • 佛山集团网站建设网站查询seo
  • wordpress 今日更新成都seo服务
  • 做网站还有搞头吗网页设计素材
  • 怎么做电影网站不违法吗谷歌搜索指数查询
  • 装饰公司网站建站而的跟地seo排名点击软件
  • 新余做网站公司北京百度网讯科技有限公司
  • 做网站的带宽多少钱阳江网站建设
  • 房地产手机端网站建设怎样建网站?
  • 泉州网站网站建设软件开发公司简介
  • wordpress 购物导航网站域名注册信息怎么查
  • 做网站是靠流量赚钱么怎样推广自己的app
  • seo网站分析工具网络营销的优势和劣势
  • 外网网址可以做英语阅读的网站经典广告推广词
  • 可以在电脑做公务员题的网站微信小程序排名关键词优化
  • 深圳公司 网站建设免费域名怎么注册
  • 做挖机配件销售的网站seo技术培训海南
  • 十大网站app软件下载企业文化案例
  • 石家庄住建局网站最近一两天的新闻有哪些
  • 专业做互联网招聘的网站有哪些网站是否含有seo收录功能
  • 深圳网页技术开发公司seo网站建设优化
  • 凡科网做网站媒体公关公司
  • 新零售商城系统开发文章优化关键词排名