快速学习结构型设计模式,请提供业务场景和demo
时间: 2023-06-12 11:07:50 浏览: 126
好的,下面我会选取一些常用的结构型设计模式,提供业务场景和相应的Demo。
1. 适配器模式(Adapter Pattern)
适配器模式可以将不兼容的接口转换为兼容的接口,以便让不同的类能够协同工作。场景:在一个程序中,可能会存在多个接口,但是这些接口却不兼容。这时,我们就需要使用适配器模式来实现这些接口之间的兼容性。
Demo:一个公司有一套旧的人力资源管理系统,但是新员工的信息都是通过微信公众号提交的。这时,我们可以使用适配器模式,将微信公众号的接口转换为旧系统能够处理的接口,这样就可以实现新员工信息的录入。
2. 桥接模式(Bridge Pattern)
桥接模式可以将抽象部分和实现部分分离,使它们可以独立变化。场景:在一个程序中,可能会存在多个维度的变化,而这些变化又相互影响。这时,我们就需要使用桥接模式,将这些维度分离出来,使得它们可以独立变化。
Demo:一个手机品牌公司生产了多种型号的手机,每种型号又有多种颜色可选。这时,我们可以使用桥接模式,将手机的品牌和颜色分离出来,使得它们可以独立变化,从而方便生产和管理不同型号手机。
3. 组合模式(Composite Pattern)
组合模式可以将对象组合成树形结构,以表示“部分-整体”的层次结构。场景:在一个程序中,可能会存在多个对象之间的层次关系。这时,我们就需要使用组合模式,将这些对象组合成树形结构,以方便管理和操作。
Demo:一个公司有多个部门,每个部门下面可能还有多个子部门和员工。这时,我们可以使用组合模式,将部门和员工组合成树形结构,以方便管理和查询。
4. 装饰器模式(Decorator Pattern)
装饰器模式可以动态地给一个对象添加额外的职责,而不需要修改其原始代码。场景:在一个程序中,可能会存在多种功能的组合,而这些功能的组合方式又不确定。这时,我们就需要使用装饰器模式,动态地给对象添加额外的职责。
Demo:一个电商网站需要对用户的订单进行价格计算,在计算价格时,可能需要考虑折扣、优惠券、运费等因素。这时,我们可以使用装饰器模式,将这些因素作为装饰器动态地添加到订单对象中,使得价格计算能够更加灵活和可扩展。
5. 外观模式(Facade Pattern)
外观模式可以为一组复杂的子系统提供一个简单的接口,以便于客户端使用。场景:在一个程序中,可能会存在多个子系统,而客户端需要使用这些子系统时,可能需要了解这些子系统的复杂细节。这时,我们就需要使用外观模式,为这些子系统提供一个简单的接口,使得客户端无需了解其复杂细节即可使用。
Demo:一个在线购物网站需要向客户端展示商品的信息、库存状态、价格等,这些信息可能需要从多个子系统中获取。这时,我们可以使用外观模式,为这些子系统提供一个简单的接口,使得客户端能够方便地获取商品的信息、库存状态、价格等。
阅读全文