Я пишу программу сопоставления цитат, в которой требуются два абстрактных фабричных шаблона, это два интерфейса; QuoteFactory и ModeFactory . ModeFactory переключается между EasyMode и HardMode , а QuoteFactory выбирает кавычки между несколькими различными предметами (например, PolitQuotes , SportsQuotes ). Короче говоря, пользователь выберет режим, если выбран EasyMode, то пользователь должен угадать цитату, тогда как если пользователь выбирает HardMode, ему говорят, кто произнес цитату, а затем нужно угадать, поэтому реализация цитат будет меняться в зависимости от режима и выбранных кавычек.
До сих пор я создал ModeFactory в качестве интерфейса и внедрил его в EasyMode и HardMode, но теперь мне нужно каким-то образом интегрировать другой шаблон абстрактной фабрики (или более) в эти режимы, чтобы можно было выбирать кавычки. Если это полезно, я также создал класс Quote, в котором определены мои Quotes.
Может кто-нибудь помочь мне придумать базовую реализацию этих абстрактных фабрик? Это краткое изложение того, что я имею до сих пор, хотя я не могу не чувствовать, что каким-то образом это слишком усложнило ...
РЕДАКТИРОВАТЬ: Для уточнения того, что я имею в виду: если пользователь выбирает простой режим, ему предоставляется начало цитаты И автор этой цитаты, тогда как если он выбирает жесткий режим, ему предоставляется только начало цитата. Например
Простой режим:
«Я чувствовал силу ...»
Жозе Моуринью
Жесткий режим:
«Я почувствовал силу ...»
Жесткий режим не позволяет автору усложнить угадывание остальной части цитаты. Кроме того, это не школьное задание. Я читал Head First Design Patterns и теперь я пытаюсь применить полученные знания в различных ситуациях (вместо их примера с Pizza я работаю над игрой «Угадай цитаты» после прочтения QI (британского телешоу). ) книга.
public interface ModeFactory {
public Mode retrieveMode(String s);
}
public interface QuoteFactory {
public Quote retrieveQuote(String s);
}