96SEO 2026-02-19 20:11 25
模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、11策略模式、责任链模式、命令模式、中介者模式、模板模式、迭代器模式、访问者模式、观察者模式、解释器模式、备忘录模式、状态模式

有一个手机仓储管理系统使用者有三方销售、仓库管理员、采购。
需求是销售一旦达成订单销售人员会
通过系统的销售子系统部分通知仓储子系统仓储子系统会将可出仓手机数量减少同时通知采购管理子系统当
前销售订单仓储子系统的库存到达阈值以下会通知销售子系统和采购子系统并督促采购子系统采购
采购完成后采购人员会把采购信息填入采购子系统采购子系统会通知销售子系统采购完成
并通知仓库子系统增加库存。
从需求描述来看每个子系统都和其它子系统有所交流在设计系统时如果直接在一个子系统中集成对另两个
子系统的操作一是耦合太大二是不易扩展。
为解决这类问题我们需要引入一个新的角色-中介者-来将
“网状结构”精简为“星形结构”。
为充分说明设计模式某些系统细节暂时不考虑例如仓库满了怎么办该
怎么设计。
类似业务性的内容暂时不考虑首先构造三个子系统即三个类在中介者模式中这些类叫做同事些
__init__(self,mediator):self.mediator
purchaseColleague(colleague):def
%s%numself.mediator.execute(buy,num)def
warehouseColleague(colleague):total0threshold100def
setThreshold(self,threshold):self.thresholdthresholddef
self.mediator.execute(warning,self.total)return
inc(self,num):self.totalnumprint
%s%numself.mediator.execute(increase,num)self.isEnough()def
%s%numself.mediator.execute(decrease,num)self.isEnough()
%s%numself.mediator.execute(sell,num)def
content当各个类在初始时都会指定一个中介者而各个类在有变动时也会通知中介者由中介者协调各个类的操作。
abstractMediator():purchasesaleswarehousedef
setPurchase(self,purchase):self.purchasepurchasedef
setWarehouse(self,warehouse):self.warehousewarehousedef
setSales(self,sales):self.salessalesdef
stockMediator(abstractMediator):def
execute(self,content,num):print
contentbuy:self.warehouse.inc(num)self.sales.getNotice(Bought
contentincrease:self.sales.getNotice(Inc
%s%num)self.purchase.getNotice(Inc
contentdecrease:self.sales.getNotice(Dec
%s%num)self.purchase.getNotice(Dec
contentwarning:self.sales.getNotice(Stock
Left.%num)self.purchase.getNotice(Stock
contentsell:self.warehouse.dec(num)self.purchase.getNotice(Sold
%s%num)else:pass中介者模式中的execute是最重要的方法它根据同事类传递的信息直接协调各个同事的工作。
在场景类中设置仓储阈值为200先采购300再卖出120实现如下
__name____main__:mobile_mediatorstockMediator()#先配置mobile_purchasepurchaseColleague(mobile_mediator)mobile_warehousewarehouseColleague(mobile_mediator)mobile_salessalesColleague(mobile_mediator)mobile_mediator.setPurchase(mobile_purchase)mobile_mediator.setWarehouse(mobile_warehouse)mobile_mediator.setSales(mobile_sales)mobile_warehouse.setThreshold(200)mobile_purchase.buyStuff(300)mobile_sales.sellStuff(120)
中介者模式的定义为用一个中介对象封装一系列的对象交互。
中介者使各对象不需要显式地互相作用
从而使其耦合松散并可以独立地改变它们之间的交互。
三、中介者模式的优点和应用场景
1、设计类图时出现了网状结构时可以考虑将类图设计成星型结构这样就可以使用中介者模式了。
如机场调度系统多个跑道、飞机、指挥塔之间的调度、路由系统著名的MVC框架中其中的C
Controller就是MModel和VView的中介者。
四、中介者模式的缺点
1、中介者本身的复杂性可能会很大例如同事类的方法如果很多的话本例中的execute逻辑会很复杂
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback