2013-07-24 24 views
6

Tôi có một công việc mà đi theo thứ tựLoại mẫu thiết kế quy trình làm việc để sử dụng?

A -> B -> C -> D -> E

Tôi cần một mẫu thiết kế đó cho phép tôi thêm một trạng thái ở giữa chúng với sự thay đổi mã nhất .

http://en.wikipedia.org/wiki/Workflow_patterns

nào sau đây mẫu thiết kế hoạt động?

+0

Bạn có bị ràng buộc sử dụng thứ gì đó từ trang wikipedia đó hoặc bạn quan tâm đến các giải pháp chung không? –

+0

im quan tâm đến một giải pháp chung .. những người trên wiki chỉ là ví dụ – seesee

+0

bạn có thể cho biết loại công việc bạn đã có? – Rakesh

Trả lời

8

Bạn có thể nhìn vào implementions petri-net, khung tính toán lấy cảm hứng từ như Jacob, máy ảo cho các quá trình như PVM hoặc thực hiện một statemachine như SCXML mặc dù sau này đang chờ đợi nhà nước thay đổi và sau đó làm điều gì đó, vì vậy bạn cần phải thay đổi luồng điều khiển của mình thành luồng dữ liệu.

Nếu bạn muốn tự mình thực hiện, bạn cần đảm bảo rằng bạn cho phép điều khiển trở lại bộ điều khiển thời gian chạy thay vì chỉ gọi nút tiếp theo, vì điều đó sẽ làm tăng xếp chồng của bạn. Bộ điều khiển thời gian chạy này cũng có thể tiêm một đối tượng bối cảnh vào các hoạt động runnables và theo cách đó bạn có thể chia sẻ trạng thái giữa các hoạt động. Vui lòng tìm một bản phác thảo thô dưới dạng mã giả bên dưới:

interface Activity { 
    Activity run(SharedContext context); 
} 

class A implements Activity { 
    public Activity run(SharedContext context) { 
     doA(context); 
     return new B(); 
    } 
} 

class B implements Activity { 
    public Activity run(SharedContext context) { 
     doB(context); 
     return new C(); 
    } 
} 

// runtime controller 
SharedContext context = new SharedContext(); 
Activity next = new A(); 

while (next != null) { 
    next = next.run(context); 
} 
2

Bạn có thể thử activiti. Bạn cũng có thể thiết kế workflow của riêng bạn bằng cách sử dụng eclipse plugin

+0

Không muốn sử dụng bất kỳ API nào khác. Chỉ là một sản phẩm đơn giản ... – seesee