gì namespace là dành cho:
Namespaces có nghĩa là để thiết lập ngữ cảnh chỉ vì vậy bạn không cần phải confilcts đặt tên.
Quy tắc chung:
Xác định quá nhiều bối cảnh không cần thiết và sẽ gây ra sự bất tiện hơn nó là giá trị.
Vì vậy, bạn muốn sử dụng phán đoán tốt nhất của bạn, nhưng vẫn làm theo các quy tắc 2:
- Đừng quá chung chung khi sử dụng không gian tên
- Đừng quá cụ thể khi sử dụng không gian tên
Tôi sẽ không nghiêm khắc về cách sử dụng tên không gian tên và chỉ cần sử dụng các không gian tên dựa trên một nhóm mã liên quan.
Tại sao không gian tên quá chung chung là không hữu ích:
Vấn đề với cách chia không gian tên bắt đầu với tên sản phẩm, là bạn sẽ thường có một thành phần của mã, hoặc một số thư viện cơ sở đó là phổ biến cho nhiều sản phẩm.
Bạn cũng sẽ không sử dụng không gian tên Product2 bên trong Product1, vì vậy hãy chỉ định rõ ràng nó là vô nghĩa. Nếu bạn đã bao gồm các tệp của Product2 bên trong Product1, thì chuyển đổi đặt tên này có hữu ích không?
Tại sao không gian tên đó quá cụ thể không hữu ích:
Khi bạn có không gian tên đó quá cụ thể, ranh giới giữa các không gian tên khác nhau bắt đầu mờ. Bạn bắt đầu sử dụng các không gian tên bên trong lẫn nhau. Tại thời điểm này, tốt hơn là khái quát chung mã chung với nhau trong cùng một không gian tên.
Lớp học với tất cả các tĩnh vs mẫu:
"? Tại sao chúng ta nên tạo ra bên trong không lớp tư nhân và không gian tên Tại sao chúng ta nên khai báo class nơi mà tất cả phương pháp tĩnh"
Một số khác biệt:
- Namespaces có thể được ngụ ý bằng cách sử dụng các từ khóa
using
- Namespaces có thể aliased, các lớp học nhiều loại và có thể được typedef'ed
- Namespaces có thể được thêm vào; bạn có thể thêm chức năng cho nó bất cứ lúc nào và thêm vào nó trực tiếp
- Lớp học không thể được thêm vào mà không cần thực hiện một lớp được thừa kế mới
- Namespaces có thể có tờ khai phía trước
- Với các lớp, bạn có thể có các thành viên tư nhân và các thành viên bảo vệ
- Lớp học có thể được sử dụng với các mẫu
chính xác làm thế nào để phân chia:
"Dự án bao gồm 1Gb mã nguồn . Vì vậy, việc thực hành tốt nhất để module chia trên không gian tên trong c là gì ++?"
Đó là quá chủ quan để nói chính xác làm thế nào để phân chia mã của bạn mà không cần mã nguồn chính xác. Chia dựa trên các module mặc dù âm thanh logic , không phải toàn bộ sản phẩm
1 Gb mã nguồn? : o Đó là một dự án thực sự rất lớn! –