Skip to content

Instantly share code, notes, and snippets.

@raulraja
Created October 22, 2012 10:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save raulraja/3930813 to your computer and use it in GitHub Desktop.
Save raulraja/3930813 to your computer and use it in GitHub Desktop.
Sample Java Abstract Factory
interface PersistenceService {
void save();
}
class DatabasePersistenceService implements PersistenceService {
public void save() {
// save to database
}
}
class MemoryPersistenceService implements PersistenceService {
public void save() {
// save to memory
}
}
class ServiceFactory {
private static PersistenceService persistenceService;
public static PersistenceService getPersistenceService() {
return persistenceService;
}
public static void setPersistenceService(PersistenceService persistenceService) {
ServiceFactory.persistenceService = persistenceService;
}
}
public class Application {
public static void main(String[] args) {
ServiceFactory.setPersistenceService(new DatabasePersistenceService());
PersistenceService persistenceService = ServiceFactory.getPersistenceService();
persistenceService.save();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment