cari
RumahJavajavaTutorialBagaimana untuk melaksanakan rangka kerja orkestrasi proses dalam java

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>

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>

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!

Kenyataan
Artikel ini dikembalikan pada:亿速云. Jika ada pelanggaran, sila hubungi admin@php.cn Padam

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)