1.模板模式
2. 静态代理模式
/*静态代理模式
* 1.需要一个真实角色
* 2.需要一个代理角色:持有真实角色的引用
* 3.二者实现相同的接口
* 模拟结婚本人(真实角色) 和婚庆公司(代理角色)
*/
public class StatisProxy {
public static void main(String []args){
//创建真实角色
Marry you =new You();
//创建代理角色 +真实角色的引用
WeddingCompany company =new WeddingCompany(you);
//执行任务
company.marry();
}
}
interface Marry{
public void marry();
}
//真实角色
class You implements Marry{
public void marry() {
System.out.println("我要结婚了,我找了家婚庆公司代理我订酒店等。。");
}
}
//代理角色
class WeddingCompany implements Marry{
private Marry you;
public WeddingCompany(){
}
public WeddingCompany(Marry you){
this.you=you;
}
@Override
public void marry() {
System.out.println("11");
before();
you.marry();
after();
}
//结婚前公司要干的事情
public void before(){
System.out.println("布置结婚场地");
}
//结婚后要干的事情
public void after(){
System.out.println("收取相应的费用");
}
}
3.单例设计模式:确保一个类只有一个对象
(1)懒汉模式
(2)饿汉模式