An Factory factory . , . , "Abstract Factory" " ", factory .
, , /, , CarSeats, CarStereo .., TruckSeats, TruckStereo, , : IVehicleItem. 2 TruckFactory CarFactory, factory, VehicleFactory. - .
VehicleFactory carFactory = new CarFactory();
IVehicle car = new Car(carFactory);
VehicleFactory truckFactory = new TruckFactory();
IVehicle truck = new Truck(truckFactory);
, factory, . , , , switch factory . Enum , .
: , , , factory. , "downvote". factory Factory .
Wiki - factory , factory .
, Wiki GoF..etc , . , factory,
public static ImageReader getImageReader(InputStream is) {
int imageType = figureOutImageType(is);
switch(imageType) {
case ImageReaderFactory.GIF:
return new GifReader(is);
case ImageReaderFactory.JPEG:
return new JpegReader(is);
}
}
Abstract factory Pattern, .
public static GUIFactory createOsSpecificFactory() {
int sys = readFromConfigFile("OS_TYPE");
if (sys == 0) {
return new WinFactory();
} else {
return new OSXFactory();
}
}
, "" . , , . , "" "" . .