Rumah > Java > javaTutorial > teks badan

Bagaimana untuk melaksanakan rangka kerja orkestrasi proses dalam java

王林
Lepaskan: 2023-05-01 21:49:05
ke hadapan
2613 orang telah melayarinya

Proses Pendaftaran

Seperti yang dinyatakan sebelum ini, kami perlu menyokong model proses pendaftaran dalam bentuk yml, properties, xml, json, dan antara muka untuk mencerminkan prinsip tanggungjawab tunggal, kita perlu meletakkan format Logik penghuraian diproses secara bebas Untuk mencerminkan prinsip pembangunan pengembangan dan penutupan pengubahsuaian , kami mula-mula mentakrifkan satu set antara muka dan kemudian menyediakan logik pelaksanaan yang sepadan melalui. model kilang ; di sini kilang adalah Pengguna memanggil pelaksanaan tertentu melalui antara muka Pelaksanaan di sini ialah penyedia, yang juga merupakan satu set corak strategi.

Bagaimana untuk melaksanakan rangka kerja orkestrasi proses dalam java

Pemuatan Proses

Pemuatan Proses Kita perlu mengetahui beberapa titik fungsi lain yang diperlukan: 1. Menyediakan antara muka akses luaran yang bersatu; Rekod pelaksanaan dan penggunaan masa pelaksanaan;

Bagaimana untuk melaksanakan rangka kerja orkestrasi proses dalam java

Laksanakan kaedah penghuraian yang berbeza melalui jenis nod yang berbeza Jelas sekali kita perlu menggunakan mod kilang untuk mencipta kelas penghuraian, dan kita perlu. lakukannya Pembangunan pengembangan luaran ditutup kepada pengubahsuaian Untuk menambah nod, anda tidak perlu menyentuh logik kod lain Anda hanya perlu menambah penghurai nod pada masa yang sama, kami tentukan koleksi Peta di sini untuk menggunakan objek yang dihuraikan semasa memuatkan fungsi kilang dan bukannya mencipta penghurai setiap kali anda menghuraikan, mengurangkan memori yang tidak diperlukan

Kodnya adalah seperti berikut:

<code>public class NodeComponentFactory {<br><br>    private final static Map<string> cacheParser = new HashMap();<br><br>    static {<br>        cacheParser.put(NodeParserEnum.method.name(),new MethodNodeComponent());<br>        cacheParser.put(NodeParserEnum.bean.name(),new BeanNodeComponent());<br>        cacheParser.put(NodeParserEnum.condition.name(),new ConditionNodeComponent());<br>        cacheParser.put(NodeParserEnum.service.name(),new ServiceNodeComponent());<br>        cacheParser.put(NodeParserEnum.subflow.name(),new SubFlowNodeComponent());<br>    }<br><br>    public static NodeParser getNodeInstance(String nodeName){<br>        return cacheParser.get(nodeName);<br>    }<br>}<br></string></code>
Salin selepas log masuk

Apabila. kami mendapati bahawa setiap jenis penghuraian nod perlu melaksanakan antara muka penghurai, dan setiap nod mempunyai langkah yang serupa, maka kami mesti mempertimbangkan untuk menggunakan kilang abstrak di sini, yang juga selaras dengan prinsip reka bentuk Penyongsangan Ketergantungan modul atas diakses melalui antara muka pergantungan, dan modul seterusnya mewarisi kelas abstraksi, dan juga menggunakan Corak Strategi untuk membuat panggilan antara muka dalam proses logik pelaksanaan, kami akan mendapati bahawa banyak langkah diulang , seperti memulakan parameter dan melaksanakan rekod, jadi kami meletakkan kandungan berulang ke dalam kelas abstrak , melalui mod templat, biarkan nod proses hanya memfokus pada tahap penghuraian

<code>public abstract class AbstractNodeComponent implements NodeParser{<br><br>    public Map<string node> nodeMap;<br><br><br>    /**<br>     * 初始化参数<br>     * @param inputUrl<br>     * @param baseInput<br>     * @return<br>     */<br>    public BaseInput initInput(String inputUrl, BaseInput baseInput){<br>        BaseInput baseInputTarget = ClassUtil.newInstance(inputUrl, BaseInput.class);<br>        BeanUtils.copyProperties(baseInput,baseInputTarget);<br>        return baseInputTarget;<br>    }<br><br><br>    /**<br>     * 解析节点信息<br>     * @param node 节点信息<br>     * @param baseInput 请求参数<br>     * @param baseTemp 临时上下文<br>     * @return<br>     */<br>    public BaseOutput parserNode(Node node, BaseInput baseInput, BaseTemp baseTemp){<br>        baseTemp.setFlowRecord(baseTemp.getFlowRecord().append(FlowConstants.NODEKEY+FlowConstants.NODE+FlowConstants.COLON+node.getId()));<br>        BaseOutput baseOutput = parser(node, baseInput, baseTemp);<br>        return baseOutput;<br>    };<br><br>    @Override<br>    public void setNodeMap(Map<string node> nodeMap) {<br>        this.nodeMap = nodeMap;<br>    }<br><br>    @Override<br>    public abstract BaseOutput parser(Node node, BaseInput baseInput, BaseTemp baseTemp);<br><br>}</string></string></code>
Salin selepas log masuk

Pemuatan proses jujukan

Untuk pelaksanaan proses, kita perlu membahagikan komponen kepada butiran halus, sebaik-baiknya Kelas yang melaksanakan fungsi secara bebas dibahagikan kepada komponen, yang merangkumi prinsip tanggungjawab tunggal Hanya dengan membahagikan fungsi pelaksanaan dengan sangat halus boleh digabungkan secara fleksibel dalam setiap proses pelaksanaan proses seperti yang ditunjukkan dalam carta alir di bawah, yang pertama adalah pintu masuk untuk melaksanakan proses yang bersatu . Yang pertama ialah antara muka untuk panggilan luaran, dan yang kedua ialah pintu masuk untuk pelaksanaan sub-proses penghurai setiap komponen, yang digunakan untuk melaksanakan operasi pelbagai jenis nod dalam proses reka bentuk, anda mesti mengetahui hubungan antara proses, pengurusan, dan nod Sempadan antara komponen mengurangkan gandingan, supaya komponen yang berbeza boleh menjadi fleksibel dikarang.

Bagaimana untuk melaksanakan rangka kerja orkestrasi proses dalam java

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan rangka kerja orkestrasi proses dalam java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan