Skip to content

Instantly share code, notes, and snippets.

import java.util.ArrayList;
import java.util.List;
public class ProxyInternet implements Internet {
private List<String> restrictedUrls;
private ActualInternet actualInternet;
public ProxyInternet() {
createRestrictedUrlList();
public class ActualInternet implements Internet {
@Override
public void connectToUrl(String url) {
System.out.println("Making connection to: " + url);
}
}
public interface Internet {
void connectToUrl(String url) throws Exception;
}
public class ProxyPatternMain {
public static void main(String[] args) {
Internet internet = new ProxyInternet();
try {
internet.connectToUrl("www.google.com");
internet.connectToUrl("www.facebook.com");
public class BillPughSingleton {
private BillPughSingleton() {
}
private static class SingletonHelper {
private static final BillPughSingleton INSTANCE = new BillPughSingleton();
}
public static BillPughSingleton getInstance() {
public class ThreadSafeCheckSingleton {
private static ThreadSafeCheckSingleton instance;
private ThreadSafeCheckSingleton() {
}
public static ThreadSafeCheckSingleton getInstanceUsingDoubleLocking(){
if(instance == null){
synchronized (ThreadSafeCheckSingleton.class) {
public class ThreadSafeSingleton {
private static ThreadSafeSingleton instance;
private ThreadSafeSingleton() {
}
public static synchronized ThreadSafeSingleton getInstance() {
if (instance == null) {
instance = new ThreadSafeSingleton();
public class LazyInitialisationSingleton {
private static LazyInitialisationSingleton instance;
private LazyInitialisationSingleton() {
}
//This is initialised only when the object is demanded for the first time
public static LazyInitialisationSingleton getInstance() {
if (instance == null) {
public class StaticBlockSingleton {
private static StaticBlockSingleton instance;
private StaticBlockSingleton() {
}
//Static block initialization for exception handling
static {
try {
public class Main {
public static void main(String[] args) {
EagerSingleton eagerSingleton = EagerSingleton.getInstance();
}
}