2010-03-19 41 views
10

Trạng thái hiện tại là PocoCapsule là gì? Nó có tiến triển không? Nó đã được chia nhỏ với một số sản phẩm khác? Điều gì về toàn bộ ý tưởng của IoC cho C++? Nếu PocoCapsule không phải là phát triển, có phải vì IoC được coi là không hữu ích cho C++, không an toàn, các mẫu khác đã xuất hiện hoặc cái gì khác?Trạng thái hiện tại của PocoCapsule là gì?

Theo tôi hiểu có 2-3, có thể vài sản phẩm khác, rằng triển khai IoC cho C++, có sẵn và PocoCapsule là người trưởng thành nhất trong số chúng.

tôi thấy một số nhược điểm trong phiên bản hiện tại (như tôi nhìn thấy nó là 1,1 từ Google Code):

  1. Không gian tên riêng biệt.
  2. Tệp tiêu đề bắt buộc phải nằm trong thư mục INCLUDE - tốt hơn để đặt chúng trong thư mục con.
  3. Công cụ tạo phụ thuộc vào Java.
  4. Không có thư viện liên kết tĩnh nào được tạo theo mặc định.
  5. Không thể tạo mã nguồn ra khỏi tệp setup.xml để biên soạn và liên kết với ứng dụng của tôi nếu tôi không cần tính năng định cấu hình lại.

Có ai có cùng suy nghĩ không? Có ai làm việc trên một cái gì đó của danh sách này? Có bất kỳ rào cản nào để bắt đầu hoạt động, như bằng sáng chế không?

Trả lời

3

Tôi đã gửi email cho Ke Jin (người bảo trì) và phản hồi của anh ấy là nó không được phát triển hiện tại, năng động kể từ ngày 14 tháng 7 năm 2011. Anh ấy không đưa ra lý do.

2

Tôi đã tự tìm kiếm điều này một thời gian, và nhận ra rằng không có Thùng chứa IoC nào trong C++. Có rất nhiều vấn đề khi thực hiện điều này. Bắt một cái gì đó giống như C# IoC Containers (Castle Windsor, Unity, vv) là ngoài tầm với. Tôi đoán là nếu bạn yêu cầu một cái gì đó như thế này, bạn không làm c + +. Và nếu bạn làm C++, bạn cuộn của riêng bạn hoặc sử dụng các nhà máy singleton (ít trò đùa);)

Một phím tắt dễ dàng là sử dụng QML của Qt. Nó được xây dựng cho các giao diện người dùng khai báo nhưng có thể được sử dụng để xây dựng bất kỳ cây dựa trên QObject nào.

Một giao diện đẹp khác là Hệ thống CORBA cho C++, chúng có thể có một số thứ bạn cần.

Chỉ cần gợi ý của tôi đối với những nơi khác để tìm ...

+0

+1 để đề cập đến QML là ứng viên có thể. –

0

Tôi nghĩ rằng bạn có thể sử dụng thành công hệ thống metaobject Qt bằng cách dùng lại QtCore thư viện và moc-trình biên dịch trong ứng dụng của bạn.

Với hệ thống metaobject bạn có thể tạo các mô-đun hoàn toàn bị cô lập bằng cách gọi bất kỳ phương thức nào của giao diện mô-đun qua QMetaObject::invokeMethod().

Và tất cả sẽ hoạt động mà không có trường hợp đối tượng QCoreApplication! Xác định mô-đun của bạn dưới dạng lớp con của QObject, cung cấp macro Q_OBJECT và đánh dấu tất cả các phương thức giao diện với Q_INVOKABLE (tất nhiên, bạn nên thêm moc-compiler làm bước xây dựng).

Các vấn đề liên quan