TAILIEUCHUNG - thinking in c 2nd ed volume 2 rev 20 - phần 9

Các dấu hiệu của một chuyên gia trong lĩnh vực bất kỳ xuất hiện trong sự chú ý của mình những điểm tốt hơn của các nghề. Trong phần này của cuốn sách chúng tôi thảo luận về các tính năng tiên tiến của C + + cùng với các kỹ thuật phát triển được sử dụng bằng cách đánh bóng C + + chuyên gia. | 417 z 516 As an example let s revisit the Shape system. One approach to implementing a factory is to define a static member function in the base class C10 include iostream include stdexcept include string include vector include . using namespace std class Shape public virtual void draw 0 virtual void erase 0 virtual Shape class BadShapeCreation public logic_error public BadShapeCreation string type logic_error Cannot create type type static Shape factory const string type throw BadShapeCreation class Circle public Shape Circle Private constructor friend class Shape public void draw cout Circle draw n void erase cout Circle erase n Circle cout Circle Circle n class Square public Shape Square friend class Shape public void draw cout Square draw n void erase cout Square erase n Square cout Square Square n Shape Shape factory const string type throw Shape BadShapeCreation if type Circle return new Circle if type Square return new Square throw BadShapeCreation type char shlist Circle Square Square Circle Circle Circle Square int main vector Shape shapes try for char cp shlist cp cp Shape factory cp 418z516 catch Shape BadShapeCreation e cout endl purge shapes return 1 for size_t i 0 i i shapes i - draw shapes i - erase purge shapes The factory function takes an argument that allows it to determine what type of Shape to create it happens to be a string in this case but it could be any set of data. The factory is now the only other code in the system that needs to be changed when a new type of Shape is added. The initialization data for the objects will presumably come from somewhere outside the system and will not be a hard-coded array as in the previous example. Comment To ensure that the creation can only happen in the factory the constructors for the specific types of Shape are made private and Shape is declared a friend so that factory has access to the constructors. You could also declare only Shape .

TỪ KHÓA LIÊN QUAN
TÀI LIỆU MỚI ĐĂNG
54    140    1    27-11-2024
TAILIEUCHUNG - Chia sẻ tài liệu không giới hạn
Địa chỉ : 444 Hoang Hoa Tham, Hanoi, Viet Nam
Website : tailieuchung.com
Email : tailieuchung20@gmail.com
Tailieuchung.com là thư viện tài liệu trực tuyến, nơi chia sẽ trao đổi hàng triệu tài liệu như luận văn đồ án, sách, giáo trình, đề thi.
Chúng tôi không chịu trách nhiệm liên quan đến các vấn đề bản quyền nội dung tài liệu được thành viên tự nguyện đăng tải lên, nếu phát hiện thấy tài liệu xấu hoặc tài liệu có bản quyền xin hãy email cho chúng tôi.
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.