按順序執行處理器 校驗器

2021-10-01 20:20:21 字數 3231 閱讀 4561

關於上面,一步接一步處理資料、校驗資料的流程(類似於過濾器),對映到我們**裡該怎麼寫呢?

可以按照這個流程圖一步一步的寫**,把這個流程給寫完;但是缺點是不夠靈活,不好擴充套件;

2、把處理和校驗分別當作乙個介面,新增了處理器、校驗器直接實現前面的介面即可;

3、基類裡幫我們做與業務無關的事情比如排序,具體的處理、校驗邏輯由具體的實現類實現。

優先順序介面priority,這個不論是處理器還是校驗器都需要實現的介面

public inte***ce priority
處理器介面processor

public inte***ce processor extends priority
處理器基類abstractprocessor

public abstract class abstractprocessor implements processor 

}protected abstract boolean need(mapmap);

protected abstract void doprocess(mapmap);

}

具體的實現類,這個根據你的業務來實現,我這裡實現三個,但是第三個我不想要了,直接把need改為false。

@component

public class firstprocessor extends abstractprocessor

@override

public void doprocess(mapmap)

@override

public int getpriority()

}

@component

public class secondprocessor extends abstractprocessor

@override

public void doprocess(mapmap)

@override

public int getpriority()

}

@component

public class thirdprocessor extends abstractprocessor

@override

public void doprocess(mapmap)

@override

public int getpriority()

}

處理器就結束了,下面開始寫 校驗器,和處理器很類似

校驗器介面validator

public inte***ce validator extends priority
校驗器基類abstractvalidator

public abstract class abstractvalidator implements validator 

}protected abstract boolean need(mapmap);

protected abstract void dovalidate(mapmap);

}

具體的實現類,這個根據你的業務來實現,我這裡實現三個,但是第二個我不想要了,直接把need改為false。

@component

public class firstvalidator extends abstractvalidator

@override

protected void dovalidate(mapmap)

@override

public int getpriority()

}

@component

public class secondvalidator extends abstractvalidator

@override

protected void dovalidate(mapmap)

@override

public int getpriority()

}

@component

public class thirdvalidator extends abstractvalidator

@override

protected void dovalidate(mapmap)

@override

public int getpriority()

}

準備工作做完之後,我們把處理器、校驗器整合在一起

執行介面processmanager

public inte***ce processmanager
執行介面實現類processmanagerimpl,裡面做處理器、校驗器的排序

這樣子的話,我哪乙個處理器、校驗器不想用了,直接把need改為false即可

當我想加乙個新的處理器、校驗器的時候,只需要再新增乙個業務類,繼承超類,給上優先順序大小,然後編寫自己的業務邏輯即可。

**結構:

物理處理器與邏輯處理器

記錄解決方案,自己實際處理過,方案可用,在自己的部落格中記錄一下。cpu central processing unit 是 處理單元,本文介紹物理cpu,物理cpu核心,邏輯cpu,以及他們三者之間的關係。乙個物理cpu可以有1個或者多個物理核心,乙個物理核心可以作為1個或者2個邏輯cpu。物理c...

處理器核心

處理器核心 cache 寫緩衝器 主存 輔助儲存器 寫操作,對核心而言非迫切,所以加乙個寫緩衝器很好。cache可放在處理器核心與mmu之間 邏輯 cache,主流 也可放在mmu與主存之間 物理 cache 對儲存器中相同或相鄰資料和 的反覆使用,是cache改善效能的主要原因。cache同時使用...

處理器排程

1 cpu排程的相關概念 a.cpu排程 其任務是控制 協調程序對cpu的競爭 即按一定的排程演算法從就緒佇列中選擇乙個程序,把cpu的使用權交給被選中的程序 如果沒有就緒程序,系統會安排乙個系統空閒程序或idle程序 b.cpu要解決的三個問題 cpu排程的時機 就緒佇列的改變引發了重新排程 事件...