Table of Contents
Giới thiệu
Hệ thống xử lý dữ liệu kỹ thuật phải xử lý các dạng thức nhập từ chuẩn CSV và JSON để các tập tin có các bản tóm tắt chuyên biệt được dùng trong hệ thống CAD, mô phỏng và ioT. Để tạo ra dòng cảm biến tương thích với các định dạng này mà không cần phải viết lại các mẫu logic cốt lõi là một thách thức không ngừng nghỉ. Các mẫu kỹ thuật nhà máy cung cấp một giải pháp cấu trúc: nó bao gồm các mẫu tạo vật đặc biệt sau giao diện chung, cho phép hạng phụ quyết định loại bê tông nào để lập tức. Bài này giải thích cách áp dụng các mẫu Xây dựng trong việc xử lý dữ liệu, với các bước thực tế, và các ví dụ thực tế, và một cuộc thảo luận. Chúng tôi cũng sẽ xem các lợi ích này trực tiếp với các công cụ thường trực tiếp như đầu, các dữ liệu không có nhiều nguồn khác nhau.
Hiểu được gương mẫu về phương pháp nhà máy
Phương pháp Nhà máy là một mẫu thiết kế sáng tạo từ băng của Bốn. Ý tưởng cốt lõi của nó là xác định một giao diện hoặc lớp trừu tượng để tạo một đối tượng, nhưng cho phép các tầng lớp con thay đổi loại vật thể sẽ được tạo ra. Điều này khuyến khích nguyên tắc mở/ khép: một hệ thống mở cho phần mở rộng (các loại sản phẩm mới) nhưng đóng để sửa đổi (các mã hiện hữu không thay đổi).
Trong hình học, mẫu bao hàm:
- Tiền tố – một giao diện hoặc lớp trừu tượng xác định các thao tác mà tất cả các sản phẩm cụ thể phải thực hiện.
- Conctrift ) – cụ thể thực hiện giao diện sản phẩm.
- Người sáng tạo Nhà sản xuất – một lớp học trừu tượng tuyên bố phương pháp nhà máy (thường ). Người tạo cũng có thể bao gồm cả lập luận kinh doanh gọi là phương pháp nhà máy.
- Nhà sản xuất ) – các tầng phụ có quyền cao hơn phương pháp nhà máy để trả lại các trường hợp sản phẩm bê tông.
Sự tách biệt giữa sáng tạo và logic kinh doanh là điều làm cho mô hình này trở nên mạnh mẽ trong các đường ống xử lý dữ liệu.
Tại sao việc xử lý dữ liệu kỹ thuật cần có một nhà máy
Đội kỹ thuật thường làm việc với định dạng dữ liệu không hợp nhất.
- Phân tích các tập tin xuất ra dạng HDF5, CSV, và định dạng nhị phân sở hữu.
- Đọc dữ liệu cấu hình từ XML, YAML, hay biến môi trường.
- Nhập các mô hình CND từ hệ thống định vị, IPES, hoặc định dạng phần mềm bản địa.
- Tiêu thụ dữ liệu cảm biến thời gian thực thông qua MQTT, luồng HTTP, hoặc WebSockets.
Không có mẫu thiết kế, các nhà phát triển có thể rải mật mã hoặc những lời phát biểu [FLT:] để chọn đúng người đọc. Điều này làm cho hệ thống brittle - thêm một định dạng mới đòi hỏi phải sửa đổi các nhánh điều kiện, tăng khả năng của lỗi. Các phương pháp kỹ thuật nhà máy di chuyển logic chọn thành tầng phụ, vì vậy thêm một định dạng mới có nghĩa thêm một sản phẩm bê tông mới và một sản phẩm bê tông mới, để lại mã không bị phá hủy.
Bước qua bước nhảy vọt
Hãy xem xét một cách thực tế trong một phong cách ngôn ngữ- khả nghi (cũng logic đó áp dụng cho Java, C#, TypeSSp, Python, hoặc PHP).
Bước 1: Định nghĩa giao diện sản phẩm
Tạo một giao diện mà tất cả các độc giả dữ liệu sẽ thực hiện. Giao diện này định nghĩa phương pháp đọc và có thể chuyển đổi dữ liệu.
interface DataReader {
void readData();
List<Record> getRecords();
}
Bước 2: Tạo sự chia sẻ từng bước
Tăng giao diện cho mỗi định dạng được hỗ trợ.
class CSVReader implements DataReader {
// … constructor, parsing logic …
public void readData() { … }
public List<Record> getRecords() { … }
}
class JSONReader implements DataReader {
// … similar …
}
Bước 3: Định nghĩa Đấng Tạo Hóa bằng phương pháp kỹ thuật
Lớp người sáng tạo trừu tượng tuyên bố phương pháp nhà máy, cũng có thể chứa những phương pháp xử lý thông thường sử dụng sản phẩm.
abstract class DataReaderFactory {
// Factory method
abstract DataReader createReader();
// Template method that uses the product
public List<Record> processData() {
DataReader reader = createReader();
reader.readData();
return reader.getRecords();
}
}
Bước 4: Các yếu tố gây tổn thương
Mỗi tầng lớp phụ trách việc trả lại một độc giả nhất định.
class CSVReaderFactory extends DataReaderFactory {
@Override
DataReader createReader() {
return new CSVReader("input.csv");
}
}
class JSONReaderFactory extends DataReaderFactory {
@Override
DataReader createReader() {
return new JSONReader("input.json");
}
}
Bây giờ, mã khách hàng có thể làm việc với nhà máy trừu tượng và chọn nhà máy bê tông thích hợp dựa trên cấu hình hoặc điều kiện thời gian chạy:
DataReaderFactory factory = getFactoryFromConfig(); // e.g., returns CSVReaderFactory
List<Record> records = factory.processData();
Khách hàng không bao giờ trực tiếp lập tức hoặc nó chỉ tương tác với nhà máy trừu tượng và giao diện sản phẩm. Sự phân hủy này là bản chất của mô hình.
Thêm một hình dạng mới
Giả sử chúng ta phải hỗ trợ XML, chúng ta chỉ cần tạo ra:
Không cần thay đổi mã số nào khác. Mô hình nhà máy làm cho hệ thống thực sự tăng cường.
Ứng dụng thế giới thực trong kỹ thuật
Đây là một vài ví dụ cụ thể:
Trình nhập tập tin CD
Một ứng dụng CD phải đọc hình học từ hệ thống SLP (AP203/AP214), IGES, và định dạng cụ thể của nhà cung cấp nhà cung cấp như « Continworks SLPT ». Mỗi định dạng có một phân tích hoàn toàn khác nhau. Phương pháp nhà máy cho phép ứng dụng xác định đúng người nhập vào dựa trên phần mở rộng tập tin hoặc phần chọn. Phần còn lại của ứng dụng hoạt động với một đại diện hình học thống nhất.
Phân cách dữ liệu cảm biến
Một nền tảng IoT thu thập các thiết bị dùng MQTT, CoAP, HTTP PST và các giao thức nhị phân sở hữu. Một mô hình nhà máy tạo trình quản lý giao thức thích hợp, cho phép cơ chế dữ liệu được sử dụng đồng bộ hóa các dữ liệu đến.
Bộ điều khiển và thiết bị nối đầu
Dirctus ) là một sơ đồ sơ đồ không đầu phổ biến có thể quản lý nội dung từ nhiều nguồn, tập tin tải lên, phụ lục, điểm kết thúc dữ liệu và các cửa hàng dữ liệu riêng [FLT: 1]. Trong khi Chỉ đạo là được xây dựng trên một triết lý kiến trúc khác nhau, mẫu hình nhân có thể được áp dụng khi mở rộng đường dẫn xử lý dữ liệu. Chẳng hạn, tùy chỉnh có thể dùng một nhà máy để tạo “các nhà máy điều chỉnh dữ liệu khác nhau mà thường chuyển nội dung từ các dịch vụ thứ ba sang trực tiếp (tit) trong khi hệ thống này giữ cho hệ thống thống thống thống thống thống thống thống thống thống thống thống thống thống thống thống lọc sạch mà không có định dạng mã mới.
Những lợi ích của phương pháp làm ra
- Mở rộng để mở rộng, đóng để sửa đổi) – Định dạng dữ liệu mới có thể được hỗ trợ bằng cách thêm lớp mới, không phải bằng cách sửa đổi những điều đã có. Tính năng này giảm nguy cơ hồi quy.
- Dùng lại ) – logic thông thường trong lớp người tạo ra (v. d., lỗi quản lý, ghi lưu, đóng hộp) được chia sẻ cho mọi độc giả cụ thể.
- Khả năng ) – Phương pháp nhà máy có thể bị đè nén trong các thử nghiệm đơn vị để tiêm thuốc độc giả chế giễu, giúp việc thử nghiệm riêng lẻ về logic kinh doanh mà không cần chạm vào nguồn dữ liệu thật.
- Để thực hiện ), mã khách [FLT: 1] chỉ phụ thuộc vào các biến động (, , làm cho nó có thể chịu được để thay đổi trong việc thực hiện cụ thể.
- Trách nhiệm ) – Mỗi nhà tạo ra và sản phẩm cụ thể tập trung vào một dạng, tuân theo nguyên tắc trách nhiệm riêng lẻ.
Những thực hành tốt nhất và cạm bẫy thông thường
Khi nào nên dùng phương pháp nhà máy
Dùng mẫu này khi:
- Bạn không biết trước được lớp đối tượng nào sẽ cần đến hệ thống của bạn.
- Bạn muốn tạo một móc nối cho lớp con để mở rộng sự tạo ra đối tượng.
- Bạn muốn tái sử dụng các đối tượng đã có hoặc áp dụng các vết ngứa thay vì tạo ra các trường hợp mới mỗi lần (một nhà máy có thể tái tạo một đối tượng hồ bơi hoặc đơn).
Khi nào nên tránh sự quá mức
Nếu bạn chỉ có một sản phẩm hoặc một lô-môn chọn là tầm thường (v.g. luôn luôn là độc giả), phương pháp nhà máy thêm vào sự phức tạp không cần thiết. Trong trường hợp đó, một nhà máy xây dựng đơn giản hoặc một phương pháp máy in tĩnh (không có lớp con) có thể đủ.
Kết hợp với những gương mẫu khác
Phương pháp Nhà máy thường hoạt động tay với [FLT:] [FLT: 1] [FLT:] [FLT:] [phụ đề: 1]] [FLT] để xác định bộ xương của thuật toán, trong khi hoãn một số bước để phụ]. Trong tiến trình xử lý dữ liệu, người tạo có thể hoạt động như một phương pháp mẫu, gọi phương pháp nhà máy bên trong một tiến trình lớn hơn.
Kết luận
Phương pháp kỹ thuật nhà máy là một cách được chứng minh để xây dựng hệ thống xử lý dữ liệu linh động, bảo trì được. Bằng cách sắp xếp lại các vật thể được tạo ra, nó tạo ra “những gì mà các thiết bị điện tử không đầu như đạo đức, cho phép các đội hỗ trợ các định dạng dữ liệu mới và các nguồn cung cấp các nguồn cung cấp các kết quả mới mà không làm phiền phức. Dù bạn đang xây dựng một đường ống nhập khẩu kiểu COT, hay mở rộng một hệ thống điều hành như đạo đức, điều này cung cấp một cấu trúc sạch với yêu cầu của bạn. Hãy bắt đầu bằng cách xác định một giao diện rõ ràng, thực hiện các lớp học cụ thể cho mỗi định định định dạng, và phương pháp xử lý ngay lập tức của nhà máy là hệ thống có cả hai phương pháp đều là sự cải thiện và hữu hiệu.
Để đọc thêm về phương pháp Xây dựng, hãy kiểm tra lời giải thích [FLT:] và bản gốc của sách [FLT:]. Đối với ứng dụng thực tế trong kỹ thuật dữ liệu, , các chương trình của Công ty Ứng dụng Enterprise [FL:] cũng được Martin Hội nghị rất khuyến khích.