程序设计模式
程序设计模式今天主要讲三种模式,分别为
单例模式,工厂模式,代理模式。
1.单例模式
含义:
一个类对应一个对象。
分类:
懒汉模式
当第一次被调用的时候类才被创建。
饿汉模式
在类被第一次加载的时候,对象就被创建了。
懒汉设计模式主要的步骤为:
1.构造器被私有//不能new了
2.私有的,静态的引用
3.提供公共的,静态的访问方式
public class LanHan{
private LanHan(){
}
private static LanHan lh=null;
public static LanHan lanHan2(){
if(lh==null){
return lh = new LanHan();
}else{
return lh;
}
}
}
饿汉设计模式主要的步骤为:
1.构造器被私有//不能new了
2.私有的,静态的对象
3.提供公共的,静态的访问方式
public class ErHan{
private ErHan(){
}
private static ErHan re=new ErHan();
public static ErHan ErHan2(){
return re;
}
}
2.工厂模式
含义:
有些东西不必须本类自己去完成,可以使用工厂类来实现。例如:我买衣服,不必需非要我自己去制造衣服,只需要通过工厂类来进行完成。
使用:
定义工厂类和工厂方法即可。
例如,我要买一件游泳衣服。
public class Factory{
YiFu yf = null;
public YiFu factory(String name){
if("泳衣".eauals(name)){
yf = new YongYi();
}else if("礼服".equals(name)){
yf = new LiFu();
}
}
}
interface YiFu{//衣服接口
public abstract void chuan();
}
/*
两种衣服泳衣和礼服
*/
class YongYi implements YifU{
public void chuan(){
System.out.println("我穿游泳衣");
};
}
class LiFu implements YifU{
public void chuan(){
System.out.println("我穿礼服");
};
}
3.代理模式
含义:
真实的目的需要代理人来一起实现。
代理实现的主要方法
1.代理人和真实需要共同继承同一个类或者接口
2.代理需要真实的引用也就是成员属性类进行维护
3.代理人实现功能
public class Test2{
Manager manager = new Manager();
Hr hr = new Hr(manager);
hr.add();
}
public interface Add{
public abstract void addUser();
}
class Manager implements Add{
public void addUser(){
System.out.println("我同意啦");
};
}
class Hr implements Add{
Manager mananger;
public Hr(Manager manager){
this.manager = manager;
}
public void addUser(Manager manager){
System.out.println("通知面试");
maanger.addUser();
System.out.println("谈薪资");
}
}