1,单例设计模式
package org.test;
class A {
private final static A a=new A();
private A(){
System.out.println("私有构造函数");
}
public static A getInstance(){
return a;
}
}
public class TestDemo {
public static void main(String[] args) {
A temp=A.getInstance();
}
}
2,工厂设计模式
客户端不再与具体的子类联系在一起。
package org.test;
interface Fruit{
void eat();
}
class Apple implements Fruit{
public void eat(){
System.out.println("吃苹果");
}
}
class Orange implements Fruit{
public void eat(){
System.out.println("吃橘子");
}
}
class Factory{
public static Fruit getInstance(String name){
if(name.equals("Apple")){
return new Apple();
}
if(name.equals("Orange")){
return new Orange();
}
return null;
}
}
public class TestDemo {
public static void main(String[] args) {
Factory.getInstance("Apple");
}
}
3,代理工厂类
代理设计指一个代理主题来操作真实主题,真实主题来操作具体的业务操作。而代理主题负责其它相关业务的处理。
package org.test;
interface Network{
public void brower();
}
class Realimplements Network{
public void brower(){
System.out.println("真实上网");
}
}
class Proxy implements Network{
private Network network;
public Proxy(Network network){
this.network=network;
}
public void check(){
System.out.println("检验用户是否合法");
}
public void brower(){
check();
network.brower();
}
}
public class TestDemo {
public static void main(String[] args) {
Network real=new Proxy(new Real());
real.brower();
}
}