Tại sao máy chảy cần thiết khả năng làm việc

Ứng dụng kinh doanh hiện đại phải thích nghi nhanh chóng để thay đổi các quy tắc kinh doanh, điều chỉnh động cơ làm việc, và kỳ vọng của khách hàng. Một động cơ chạy công việc - thành phần cốt lõi mà dàn nhạc giao thức giao thức hay thực hiện nhiệm vụ song song song - trở thành brittle nếu khó mã hóa. Thiết kế một động cơ làm việc mở rộng có nghĩa là bạn có thể giới thiệu các loại nhiệm vụ mới, chuyển đổi, hoặc kiên trì chiến lược mà không cần viết lại các mã số lớn. mẫu đơn giản hóa, một mẫu hình mẫu điển hình điển hình từ băng nhóm bốn, cung cấp một giải pháp sạch để quản lý các gia đình của các đối tượng liên quan trong khi khách hàng bị mất mã hóa.

Hiểu được gương mẫu về sự phân biệt

Mẫu hình trừu tượng cung cấp một giao diện để tạo ra các gia đình có liên quan hoặc phụ thuộc mà không cần xác định lớp cụ thể. Nó đặc biệt hữu ích khi hệ thống phải độc lập với cách tạo, cấu tạo và đại diện. Trong bối cảnh của động cơ chạy [FLT] (các công việc, thông thường bạn có nhiều gia đình: [LT: 0] [FLT: 0] [FLT: 1] [TTTTTT:] [các đơn vị nguyên tử], [FL:], FL: 2], [phụ đề khác nhau, định nghĩa [phụ đề], cấu hình di chuyển bằng các thiết lập].

Các mẫu hoạt động bằng cách xác định một giao diện nhà máy trừu tượng mà tuyên bố phương pháp tạo ra các loại sản phẩm. Các lớp học nhà máy phân tích sau đó thực hiện các phương pháp để tạo ra các biến thể sản phẩm riêng biệt. Khách hàng chỉ sử dụng giao diện sản phẩm trừu tượng và trừu tượng, cho phép trao đổi toàn bộ gia đình của các đối tượng mà không thay đổi mã khách hàng.

Các yếu tố then chốt của mẫu

  • Nhà máy sản xuất ) – phát hành phương pháp sáng tạo cho sản phẩm trừu tượng.
  • Concry ) — thực hiện các phương pháp tạo ra để sản xuất một họ sản phẩm bê tông.
  • Sản phẩm đa dụng ) – phát hành giao diện cho mỗi loại sản phẩm.
  • Sản phẩm concle ) — thực hiện giao diện sản phẩm trừu tượng.
  • - - chỉ sử dụng giao diện sản phẩm trừu tượng và trừu tượng.

Làm gương trong việc tạo ra động cơ làm việc Java

Để xây dựng một động cơ làm việc mở rộng với các mẫu tỉ mỉ ở Java, bắt đầu bằng việc mô phỏng các thành phần trừu tượng.

Bước 1: Định nghĩa giao diện sản phẩm trừu tượng

public interface Task {
 void execute();
 String getName();
}

public interface Transition {
 boolean evaluate(WorkflowContext context);
 String getTargetState();
}

public interface Workflow {
 void start();
 void stop();
 String getStatus();
}

Bước 2: Tạo giao diện nhà máy trừu tượng

public interface WorkflowFactory {
 Task createTask(String name, String type);
 Transition createTransition(String source, String target, Condition condition);
 Workflow createWorkflow(String id);
}

Bước 3: Xây dựng các nhà Bê - tên

Dịch vụ chạy bộ [FLT: 1] – thích hợp cho việc làm tuyến tính, giao thức với việc ghi nhật ký cơ bản và đồng bộ hóa.

public class SimpleWorkflowFactory implements WorkflowFactory {
 @Override
 public Task createTask(String name, String type) {
 return new SimpleTask(name);
 }

 @Override
 public Transition createTransition(String source, String target, Condition condition) {
 return new SimpleTransition(source, target, condition);
 }

 @Override
 public Workflow createWorkflow(String id) {
 return new SimpleWorkflow(id);
 }
}

Bộ Theo dõi Công việc cao cấp ) – cho những tình huống phức tạp cần thiết để thực hiện arynronous, kiểm tra đường dẫn, và có điều kiện chi nhánh với nhiều chiến lược đánh giá.

public class AdvancedWorkflowFactory implements WorkflowFactory {
 @Override
 public Task createTask(String name, String type) {
 return new AsyncTask(name, new AuditService());
 }

 @Override
 public Transition createTransition(String source, String target, Condition condition) {
 return new CompositeTransition(source, target, condition);
 }

 @Override
 public Workflow createWorkflow(String id) {
 return new StateMachineWorkflow(id);
 }
}

Bước 4: Mã ứng dụng khách chỉ có hệ số trừu tượng

public class WorkflowEngine {
 private WorkflowFactory factory;

 public WorkflowEngine(WorkflowFactory factory) {
 this.factory = factory;
 }

 public void buildAndExecuteWorkflow(String id) {
 Workflow workflow = factory.createWorkflow(id);
 Task task1 = factory.createTask("Validate", "validation");
 Task task2 = factory.createTask("Process", "processing");
 // ...
 workflow.start();
 }
}

Thiết kế này cho phép để không biết nó đang sử dụng nhiệm vụ cụ thể nào hoặc chuyển tiếp nó. Thay đổi toàn bộ gia đình các thành phần dòng chảy công việc đơn giản như tiêm một nhà máy khác nhau - nhiều qua việc tiêm hoặc cấu hình tập tin.

Lợi ích của việc dùng gương mẫu về nguyên tắc trừu tượng trong các động cơ làm việc

  • Khả năng ) – Thêm một họ công việc mới (v. d., một luồng công việc vibatch) chỉ đòi hỏi một nhà máy bê tông mới và lớp học sản phẩm. Không có thay đổi mã khách hàng hiện có.
  • Sự thống nhất ) – Vì tất cả các sản phẩm trong một gia đình được tạo ra bởi cùng một nhà máy, chúng tự nhiên hoạt động với nhau. Chẳng hạn, một ) Một ) Phương pháp làm việc ) [FLT: 1] đảm bảo rằng các công việc đặc biệt và sự chuyển tiếp của nó có cùng cấu hình.
  • [FLT: 0] Khả năng giữ nguyên – Sự sáng tạo đối tượng được tập trung. Gỡ lỗi hoặc thay thế nội dung của một gia đình không lan truyền qua hệ thống.
  • Khả năng ) – Các nhà máy Mock hoặc spob có thể được tiêm để thử nghiệm đơn vị, cô lập động cơ chảy công việc từ cơ sở dữ liệu thực hoặc phụ thuộc dịch vụ.

Những ứng dụng và tham khảo từ thế giới thật

Thí dụ, mẫu Nhà máy Trừu tượng được dùng rộng rãi trong khung hình doanh nghiệp. Ví dụ, mẫu hình mùa xuân được xây dựng xung quanh một nhà máy có mẫu máy có thể dùng để cấu hình nhiều động cơ. Bạn có thể khám phá mô hình cổ điển của các máy [FLT: 0]]; [FLT: 1] và [FL: 2] [FL] [FL] [FL] [FT] [FT] [FT]] [T]] [T]] và [T]]] [T]] [T]] [T]] [T]] [TT]] [T]]]] [T]] [T]]]] [T]]]] [TTT]]] [T]] [T]] [T]]] [T]]] [T]]] [T chương trình thiết lập gốc của sách gốc [FT]]]] [T]]]]] [T]]].

Để có thể lặn sâu hơn vào kỹ thuật thực hiện đặc biệt Java, bài báo [FLT: 0] về Nhà máy trừu tượng ở Java bao gồm những ví dụ thực tế và so sánh với các kiểu mẫu sáng tạo khác ).

Việc buôn bán biến đổi và khi nào nên dùng những mẫu hình khác

Những ví dụ trừu tượng về nhà máy là có tác động mạnh mẽ nhưng không phải lúc nào cũng đúng.

  • Sự phức tạp ) – Thêm vào các loại sản phẩm mới đòi hỏi phải cập nhật giao diện trừu tượng và mỗi nhà máy bê tông, có thể rất khó hiểu nếu gia đình sản phẩm thay đổi thường xuyên.
  • Vụ nổ ) – mỗi gia đình mới cho thêm nhiều lớp mới.
  • Các nhà sản xuất [FLT:] có thể xây dựng các đồ vật phức tạp — Đối với các biến đổi đơn giản, mẫu ) ) [FLT:] mẫu [FLT:] có thể xây dựng các vật thể phức tạp theo bước . Phương pháp có thể thích hợp hơn khi bạn cần trao đổi các thuật toán [FLT: t].

Nếu động cơ lưu động cần hỗ trợ một số loại sản phẩm khác nhau thay đổi độc lập, giao diện cứng của i - me có thể trở thành cổ chai. Trong trường hợp như thế, hãy xem xét việc kết hợp nó với [FLT: 0] để mô hình [FLT: 1] [FLT: 1] để sao chép cấu hình nhân bản có sẵn, hoặc dựa vào ) Xác định [FL:2).

Những sự suy xét cấp cao về các động cơ sẵn sàng sản xuất

Kết hợp với các công việc phụ thuộc trong việc lọc khung

Trong ứng dụng Java hiện đại sử dụng Spring hay EE, nhà máy bê tông có thể được đăng ký như là đậu, và động cơ làm việc có thể nhận thông qua việc tiêm máy xây dựng. Điều này làm giảm tốc độ thậm chí cả việc chọn nhà máy từ chính động cơ, cho phép cấu hình thời gian chạy thông qua hồ sơ hoặc biến môi trường.

Hỗ trợ định nghĩa dòng làm việc tự chọn

Bạn có thể mở rộng nhà máy trừu tượng để đọc định nghĩa bên ngoài (v. d., JSON, YML, hoặc BPMN 2.0) và tạo ra các vật tương ứng. Một có thể phân tích tập tin BPMN và tạo , , và . Cách này giữ cho khả năng phân tách lý luận phân tách khỏi động cơ thực hiện.

Ứng dụng trình diễn

Vì nhà máy đặc biệt thường tạo ra các đối tượng theo nhu cầu, nó có thể giới thiệu trên đầu nếu việc tạo ra đối tượng là đắt. Hãy xem xét việc sử dụng các hồ chứa vật thể bên trong nhà máy bê tông để cung cấp tài nguyên cần thiết để lập tức (v. d., kết nối cơ sở dữ liệu hay khách hàng HTTP). Nhà máy cũng có thể được làm chỉ an toàn bằng cách sử dụng bộ nhớ tạm hoặc phương pháp tạo đã đồng bộ hoá.

Kết hợp với mẫu mẫu mẫu mẫu mẫu

Khi luồng công việc khác nhau chỉ trong các tham số nhỏ (như giá trị thời hạn hoặc lỗi thời xử lý các quy tắc), việc nhân bản một vật mẫu có thể hiệu quả hơn việc xây dựng một vật mới mỗi lần. Nhà máy có thể giữ một danh sách các vật mẫu và trả lại nhân bản thay vì các trường hợp mới.

Kết luận

Mẫu ngữ nghĩa là nền tảng vững chắc và thời gian để thiết kế các động cơ làm việc mở rộng ở Java. Bằng cách trừu tượng hóa sự tạo ra các thành phần liên quan [FLT: 0] [FLT:] đặt [FLT: 1], và mức độ nhất quán cao của mô hình. Trong khi mở rộng cấu trúc thêm, hệ thống sẽ trở nên rõ ràng và các gia đình không cần phải lo lắng gì nữa.

Khi áp dụng một cách chu đáo, với ý thức về việc trao đổi các khoản tiền và các phương pháp thay thế thích hợp, mẫu hình trừu tượng bảo đảm rằng động cơ làm việc của bạn có thể tiến hóa cùng với những yêu cầu kinh doanh thay đổi, giảm các khoản nợ kỹ thuật và cho phép các đội phân phối các tính năng nhanh hơn.