二·、spring成長之路——委派設計模式和單例設計模式

3.委派設計模式

設計思想:就是多個類去完成一項的工做,其中一個類去分發任務,其餘類作具體的任務,而具體表現是這個委派類的工做,具體過程是被委派類來操做的java

【ITask.java】定義工做的統一標準設計模式

package com.itcloud.pattern.delegate;
//意見任務須要多人進行完成
public interface ITask {
    //不一樣的人更具任務標準完成不一樣的工做
    void work();
}

【WorkerOne.java】被委託類安全

package com.itcloud.pattern.delegate;

public class WorkerOne implements ITask {
    @Override
    public void work() {
        System.out.println("第一我的須要完成的事情");
    }
}

【WorkerTow.java】被委託類ide

package com.itcloud.pattern.delegate;

public class WorkTow implements ITask {
    @Override
    public void work() {
        System.out.println("第二我的須要完成的事情");
    }
}

【Dispatcher.java】這個類就是負責任務的分發,將上級的任務分配到每個類中性能

package com.itcloud.pattern.delegate;


//這項任務的完成,須要由一我的進行委派,領導級別的
public class Dispatcher implements ITask {

    private Class<? extends  ITask> clazz;

    public Dispatcher(Class<? extends  ITask> clazz){
        this.clazz = clazz;
    }
    @Override
    public void work() {
        try {
            clazz.getDeclaredMethod("work").invoke(clazz.newInstance());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

【DelegateTestDemo.java】測試類測試

package com.itcloud.pattern.delegate;

public class DelegateTestDemo {
    public static void main(String[] args) {
        Dispatcher dispatcher = new Dispatcher(WorkerOne.class);
        dispatcher.work();
    }
}

4.單例設計模式

不管從性能和安全的角度這個單例設計都是最優的this

package com.itcloud.pattern.SingleInst;

public class SingleIns {

    private static class generator{
         public static final SingleIns INSTANCE = new SingleIns();
    }
    private SingleIns(){}

    public static final SingleIns getInstance(){
        return generator.INSTANCE;
    }
}

此時咱們也能夠像JDK動態代理那樣對生成的代理類進行字節碼反編譯。
愛生活愛分享歡迎您的關注與加入自學交流羣:461265466這裏寫圖片描述spa

相關文章
相關標籤/搜索