1.单例设计模式
package cn.mldn.demo;
class Singleton {
private static final Singleton INSTANCE = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return INSTANCE;
}
public void print() {
System.out.println("www.mldn.cn");
}
}
public class JavaDemo {
public static void main(String args[]) {
Singleton instance = null;
instance = Singleton.getInstance();
instance.print();
}
}
2.工厂设计模式
interface IFood {
public void eat();
}
class Bread implements IFood {
public void eat() {
System.out.println("吃面包。");
}
}
class Milk implements IFood {
public void eat() {
System.out.println("喝牛奶。");
}
}
class Factory {
public static IFood getInstance(String className) {
if ("bread".equals(className)) {
return new Bread();
} else if ("milk".equals(className)) {
return new Milk();
} else {
return null;
}
}
}
public class JavaDemo {
public static void main(String args[]) {
IFood food = Factory.getInstance("bread");
food.eat();
}
}
3.代理设计模式
interface IEat {
public void get();
}
class EatReal implements IEat {
public void get() {
System.out.println("【真实主题】得到一份食物,而后开始品尝美味。");
}
}
class EatProxy implements IEat {
private IEat eat;
public EatProxy(IEat eat) {
this.eat = eat;
}
public void get() {
this.prepare();
this.eat.get();
this.clear();
}
public void prepare() {
System.out.println("【代理主题】1、精心购买食材。");
System.out.println("【代理主题】2、小心的处理食材。");
}
public void clear() {
System.out.println("【代理主题】3、收拾碗筷。");
}
}
public class JavaDemo {
public static void main(String args[]) {
IEat eat = new EatProxy(new EatReal());
eat.get();
}
}