在GoF书中,委托并不完全是一种“设计模式”。它在许多情况下很有用,并且是其他模式的基础
- 当您要在委派之前/之后执行一些其他 *** 作时(这是Decorator模式,但它基于委派)。例如,
Collections.synchronizedList(..)
创建一个新集合,该集合委派给原始集合,但其方法已同步。 - 当您具有不兼容的接口并且想要使另一个适应(适配器模式)时。您将获得原始对象,并从符合所需接口的方法中委托给它。例如,有一个
EnumerationIterator
类,它使枚举适应Iterator
接口。该类具有一个hasNext()
委托给enumeration.hasMoreElements()
- 当您想向类用户隐藏一些复杂性时,可以使用委派给不同实际工作者的方法。例如,
Car
可以有start()
,openWindow()
和brake()
,但每一种方法将实际委托给发动机,el.windows和制动系统
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)