public abstract class AbsConcertFactory {
public abstract IMusic createMusic();
public abstract IMusicBox createMusicBox();
}
public class LatinConcertFactory extends AbsConcertFactory {
/* (non-Javadoc)
* @see com.sean.designpattern.demo.music.AbsConcertFactory#createMusic()
*/
@Override
public IMusic createMusic() {
return new LatinMusic();
}
/* (non-Javadoc)
* @see com.sean.designpattern.demo.music.AbsConcertFactory#createMusicBox()
*/
@Override
public IMusicBox createMusicBox() {
return new ViolinBox();
}
}
public class PopConcertFactory extends AbsConcertFactory {
/* (non-Javadoc)
* @see com.sean.designpattern.demo.music.AbsConcertFactory#createMusic()
*/
@Override
public IMusic createMusic() {
return new PopMusic();
}
/* (non-Javadoc)
* @see com.sean.designpattern.demo.music.AbsConcertFactory#createMusicBox()
*/
@Override
public IMusicBox createMusicBox() {
return new PianoBox();
}
}