I am writing a quote-matching program in which two Abstract Factory Patterns are required, these are two interfaces; QuoteFactory and ModeFactory. ModeFactory switches between EasyMode and HardMode and QuoteFactory picks out Quotes between several different subjects (i.e. PoliticalQuotes, SportsQuotes). In short, the user will pick a mode, if the EasyMode is picked then the user has to guess the quote whereas if the user chooses the HardMode the user is told who said the quote and then has to guess, so the implementation of the Quotes will change depending on the Mode as well as the Quotes chosen.
So far I have created ModeFactory as an interface and implemented it into EasyMode and HardMode, but now I need to somehow integrate another Abstract Factory Pattern (or more) into these modes so that the Quotes can be chosen. If it is helpful I have also created a Quote class in which my Quotes are defined.
Can anyone help me come up with a basic implementation of these Abstract Factories? This is the outline of what I have so far, although I cannot help but feel that I have overcomplicated it somehow...
EDIT: To reclarify what I mean: If the user picks the Easy Mode then they are provided with the start of a quote AND the author of that quote, whereas if they pick the Hard Mode they are only provided with the start of the quote. For example
Easy Mode: "I felt the power of..." Jose Mourinho
Hard Mode: "I felt the power of..."
The hard mode does not give the author to make it harder for the user to guess the rest of the quote. Also, this is not a school assignment. I've been reading Head First Design Patterns and now I'm trying to apply what I've learned into different situations (instead of their Pizza example I'm working on a Quote Guessing Game, after reading through the QI (British TV Show) book.
public interface ModeFactory {
public Mode retrieveMode(String s);
}
public interface QuoteFactory {
public Quote retrieveQuote(String s);
}