我有个问题。我需要创建一个与产品做的小事情。现在我可以有7种不同类型的产品。有些是另一些的子类型,例如
Cars
- Vans
- petrol
- diesel
- City
- Hatchback
- Saloon
- Estate
- petrol
- diesel现在,为了争论所有我的城市,掀背和轿车是混合动力/汽油/任何东西,我不打算销售汽油和柴油车。然而,在未来的某个时候,我可能会有汽油和柴油轿车,但我不会有20+类型的产品。如果它要上升,我可能会有2-3个类型。
据我所知,Prototype Pattern在这里可能是一个很好的选择,因为我将能够避免房产->汽油和货车->汽油之间的重复。但话又说回来,面包车将具有不同于城市汽车的特性,例如最大装载尺寸。
我一直在广泛地阅读有关设计模式的文章,有一件事我记得很清楚,那就是在你不需要模式的时候不要使用它。现在的问题是--我需要它吗?
谢谢!
发布于 2011-10-28 15:34:33
Decorator模式可能是最直接使用的模式,它可以很好地扩展具体对象、功能和/或特征。
这里有一些简单的阅读:Head First Design Patterns - CH3 pdf
仅供参考,无论您选择哪种语言,夫妇都必须具备学习和参考设计模式的能力:
2) Patterns for Enterprise Application Architecture
3) Design Patterns: Elements of Reusable Object-Oriented Software
和站点:
1) DoFactory
2) StackOverflow Design Patterns Newbie
还有其他几个,我得把它们找出来。
发布于 2011-10-28 15:48:47
每种类型的汽车都需要不同的行为吗?汽油面包车和柴油面包车的行为不同?一个酒馆必须表现得和一个庄园不同?
如果我没理解错的话,你需要这样的东西
public enum FuelType
{
Petrol,
Diesel
}
public class Car
{
public string Name {get;set;}
public FuelType Fuel {get;set;}
}
public class Van:Car { }
public class CityCar:Car { }如果货车的特征只是与汽车不同的值,你不需要子类化,你只需要改变一个属性值。例如,一个Van应该有其他属性或方法的不同实现,才有资格进行子类化。
https://stackoverflow.com/questions/7925943
复制相似问题