Ứng dụng của tôi cần có khả năng tạo cấu trúc cây của diễn viên. Cách tiêu chuẩn để làm điều này tôi tưởng tượng sẽ là đặt mã instantiation bên trong các diễn viên để họ có thể nhanh chóng con cái của họ. Cách tiếp cận tôi thà sẽ là để có thể nhanh chóng một diễn viên tại một con đường nhất định. Chẳng hạn như tạo diễn viên A trong mySystem và sau đó có thể trực tiếp tạo ra akka: // mySystem/A/B và các diễn viên khác. Chức năng này có tồn tại không? Nó sẽ đơn giản hóa mã của tôi rất nhiều.Tạo thủ công phân cấp diễn viên trong akka
EDIT: Bây giờ tôi không có trên điện thoại của tôi, hãy để tôi xây dựng.
nói rằng tôi có một lớp
class myActor extends actor
và tôi cần phải thực hiện một cây n chiều trong số này. Thay vì có mã cần thiết để nhanh chóng trẻ em của mình trong chức năng nhận được với một cái gì đó giống như
case Create(n:Int) => {}
Tôi đang tìm kiếm để đơn giản hóa mã myActor bằng cách không bao gồm bất kỳ đó và thay vào đó là khả năng tạo ra hệ thống cấp bậc của tôi khi bắt đầu mã của tôi theo cách thủ công. Vì vậy, lý tưởng một cái gì đó như thế này (giả sử hàm tĩnh giả "tạo ra"):
val sys = ActorSystem("mySystem")
Akka.Actors.Create("akka://mySystem/a", new myActor())
Akka.Actors.Create("akka://mySystem/a/b", new myActor())
Akka.Actors.Create("akka://mySystem/a/c", new myActor())
mà sẽ tạo ra cây diễn viên:
a
/\
b c
Bây giờ, điều này có tồn tại? Có cách nào tốt hơn để làm điều này mà không làm lộn xộn mã diễn viên của tôi với mã trình diễn không?
CHỈNH SỬA, vòng 2:
Ok, có vẻ như chức năng này không tồn tại. Thay vào đó, tôi đã tạo ra một đặc điểm phụ của diễn viên và buộc tất cả mã instantiation của tôi ở đó để các lớp triển khai cụ thể của tôi vẫn còn gọn gàng.
Tôi thấy rằng về mặt lý thuyết đây là một câu trả lời hay, tuy nhiên tôi không thể không nhận thấy có bao nhiêu mã spaghetti từ các hệ thống phân cấp hệ thống lớn. Một cấu hình trung tâm như đã đề cập trong câu hỏi có thể cung cấp một cơ chế cho sự hiểu biết rõ ràng về hệ thống phân cấp tổng thể cho các mục đích phần mềm thực tế. Bạn có đề xuất một số phương pháp thay thế để làm rõ phân cấp phức tạp? Hay đây chỉ là cách mà nó phải được trao cho các mối quan hệ giữa phụ huynh và con? –
Rất khó để tôi trả lời câu hỏi này vì dường như bạn ngụ ý ngữ cảnh mà tôi không có. Hệ thống diễn viên được cấu trúc trong các subtrees cung cấp chức năng nhất định, theo nghĩa đó chúng rất mô đun. Điểm vào của mỗi mô-đun con này là diễn viên hàng đầu của nó, có hiệu quả là toàn bộ cây con của nó. Tôi có thể thấy cách phá vỡ mô hình này bằng cách cố gắng cài đặt các diễn viên trong các subtrees từ bên ngoài sẽ tạo ra mã spaghetti, bởi vì điều đó đơn giản là không có nghĩa là phải làm. Bất cứ khi nào một diễn viên cần tạo một đứa trẻ, nó có thể xem ví dụ về cấu hình để xác định cách thực hiện điều đó. –