在创建对象时,构造函数有很多参数是optional
。稍后使用setter设置它们(例如:在惰性初始化期间)。
我的问题是,在某些情况下根本无法通过构造函数或setter设置参数。为了这个问题,我称这样的实例变量-dormant
。假设有一个标准的pizze示例,其中Pizza(cheese, chicken, toppings).
。客户可能不希望摘心,并可能留下dormant.
这被认为是不良做法吗?如果是,那么是否存在使用dormant
实例变量清除此类的已知模式?
最佳答案
我认为Decorator Pattern是您所需要的:
装饰器模式可用于静态(或在某些情况下在运行时)独立于同一类的其他实例,以静态方式扩展(装饰)某个对象的功能。
在此处查看.NET示例:
Please help me understand the "Decorator Pattern" with a real world example.
在这里您可以找到一个Java示例:
Gang of Four – Decorate with Decorator Design Pattern