设计模式--解决的问题

本文从《.NET设计模式》出发,深入探讨了设计问题的解决需求,并推荐了相应的设计模式。内容涵盖了从创建对象、紧耦合到功能扩展等关键设计挑战,以及为应对这些问题而提出的抽象工厂模式、工厂方法模式、原型模式等解决方案。此外,还讨论了如何在不改变类的情况下扩展功能、隐藏对象表示细节、避免修改现有类以及处理算法和环境依赖性等问题。

具体内容摘自《.NET设计模式》,以供查阅

问题--设计问题
解决需求--解决问题推荐的解决方法或设计需求
相关设计模式--解决问题相关设计模式

  • 问题:通过显示指定类创建对象

解决需求:需要实例化时,间接创建对象

相关设计模式:抽象工厂模式、工厂方法模式和原型模式

 

  • 问题:紧耦合

解决需求:需要类之间是松耦合的

相关设计模式:抽象工厂模式、命令模式、外观模式、中介模式、观察者模式和职责链模式

 

  • 问题:通过生成子类扩展功能

解决需求:通过对象组合技术实现功能扩展

相关设计模式:桥接模式、职责链模式、组合模式、装饰模式、观察者模式和策略模式

 

  • 问题:对对象表示或实现的依赖

解决需求:如果客户知道对象如何表示、保存、定位或实现,那么在对象发生变化时也可能发生变化,因此需要对客户隐藏这些信息

相关设计模式:抽象工厂模式、命令模式、外观模式、中介模式、观察者模式和职责链模式

//客户:我是这么理解的,是调用方,比如类B通过某种方式调用类A,则B为客户

 

  • 问题:不能方便地修改类

解决需求:无法修改已存在的类,却又希望修改这个类

相关设计模式:适配器模式、装饰模式和访问者模式

 

  • 问题:对算法的依赖

解决需求:在目的不变的情况下,算法需要修改时

相关设计模式:生成器模式、迭代子模式、策略模式、模板方法模式和访问者模式

 

  • 问题:对软硬件环境的依赖

解决需求:可移植性和可维护性

相关设计模式:抽象工厂模式和桥接模式

转载于:https://www.cnblogs.com/WangQ/archive/2011/07/07/design-question.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值