Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: factory method

  1. #1
    Ngày gia nhập
    10 2008
    Bài viết
    11

    Mặc định factory method

    có ai nói sơ sơ vài điều về mẫu thiết kế này trong lập trình hướng đối tượng ko?

  2. #2
    Ngày gia nhập
    04 2008
    Bài viết
    10

    Trích dẫn Nguyên bản được gửi bởi cuopbien Xem bài viết
    có ai nói sơ sơ vài điều về mẫu thiết kế này trong lập trình hướng đối tượng ko?
    cái này bạn nên search down trên mạng về cuốn Design Pattern in C++,trong đó sẽ nói rõ về 23 mẫu thiết kế trong ngôn ngữ C++
    thân,

  3. #3
    No Avatar
    ngocbig Khách

    Cuốn sách kinh điển. Không thể không đọc.

    Design Patterns - Elements Of Reusable Object Oriented Software

    Preface to Book
    ...
    A word of warning and encouragement: Don't worry if you don't understand this book completely on the first reading. We didn't understand it all on the first writing! Remember that this isn't a book to read once and put on a shelf. We hope you'll find yourself referring to it again and again for design insights and for inspiration.
    ...
    Đã được chỉnh sửa lần cuối bởi ngocbig : 19-12-2008 lúc 02:47 PM.

  4. #4
    Ngày gia nhập
    09 2007
    Bài viết
    724

    - Method Factory là 1 trong 23 mẫu của design pattern.
    nó nằm trong nhóm khởi tạo và tạo lập đối tượng.

    - Mục tiêu: Nó định nghĩa ra 1 lớp interface để tạo lập (thiết lập) một đối tượng nhưng nó sẽ đưa quyền thiết lập lại cho mấy lớp con của nó (các lớp được kế thừa từ nó). Tức chi tiết thiết lập như thế nào, nó sẽ để cho các lớp kế thừa từ nó quyết định.

    ví dụ Bạn cần tìm kiếm 1 nhỏ bồ thì bạn làm gì? Bạn cần chuẩn bị sẵn sàng trước hết mọi thứ để tạo ra các 'cách thức' để tiếp cận với mỗi con bồ khác nhau.
    ứng với 1 loại đối tượng bạn sẽ có 1 cách 'làm quen' khác nhau. Giả sử nếu con gái học IT thì bạn khởi tạo đối tượng 'bồ' bằng cách một đoạn code nào đó. Đối với nhỏ học văn bạn làm quen bằng 1 phương pháp là làm 1 bài thơ (hay hay) tặng nó. ( ở đây mình nói làm quen là quá trình khởi tạo đối tượng đó, nó sẽ sinh ra đối tượng đó. [chi tiết hơn: lúc đầu bạn có 1 con bồ học IT, giờ tham thêm con nữa bạn tạo ra 1 đối tượng mới, và gắn nó, cho kế thừa từ lớp Con gái bạn đã có, sau đó bạn override lại phương thức 'khởi tạo' (quá trình làm quen) sao cho phù hợp với đối tượng đó, cứ 1 lần muốn thêm ai, bạn gắn nhỏ đó vào cho kế thừa từ class bồ của bạn vậy là ok.] )

    Để nghĩ cách vẽ hình đưa lên sau;


    Chi tiết về các mẫu khác bạn có thể tham khảo thêm ở 2 link:

    http://nthoai.blogspot.com/search/la...ctory%20Method
    http://sourcemaking.com/design_patterns/factory_method

  5. #5
    No Avatar
    ngocbig Khách

    Dịch tạm một đoạn thử coi. (Design Patterns - Elements Of Reusable Object Oriented Software)

    Factory Method


    Mục đích.

    Định nghĩa một giao diện để tạo một đối tượng nhưng để cho các lớp kế thừa quyết định lớp nào sẽ khởi tạo. Factory Method để cho một lớp lùi việc khởi tạo cho lớp kế thừa.

    Tên khác

    Virtual Constructor.

    Động cơ.

    Các Framework sử dụng những lớp trừu tượng để định nghĩa và duy trì mối liên kết giữa các đối tượng. Một Framework cùng thường chịu trách nhiệm cho việc tạo các đối tượng này.

    Xét một framework dùng cho các ứng dụng hiển thị nhiều tài liệu đối với người dùng. Hai lớp kiểu trừu tượng chính trong framework này là lớp Application và lớp Document. Cả hai lớp đều là lớp trừu tượng và người dùng (hai lớp này) phải kế thừa chúng để hiện thực hóa các cài đặt theo từng ứng dụng của họ. Ví dụ như để xây dựng một ứng dụng vẽ thì chúng ta cần định nghĩa lớp DrawingApplication và DrawingDocument. Lớp Application chịu trách nhiệm cho việc quản lý các đối tượng Document và sẽ tạo chúng khi được yêu cầu – chính là khi người dùng chương trình chọn Open hoặc New từ một menu chẳng hạn.

    Bởi vì việc một lớp cụ thể kế thừa lớp Ducument để khởi tạo đối tượng tùy thuộc vào mỗi ứng dụng do đó lớp Application không thể biết trước để khởi tạo lớp kế thừa của lớp Document – lớp Application chỉ có thể biết khi nào thì một document mới sẽ được tạo chứ không phải loại Document nào sẽ được tạo. Điều này tạo ra sự lựa chọn khó khăn: framework buộc phải khởi tạo các lớp nhưng framework đó lại chỉ biết về các lớp trừu tượng, mà lớp trừu tượng thì lại không thể khởi tạo được.

    Mẫu Factory Method đưa ra một giải pháp. Nó sẽ gói thông về lớp kế thừa nào của lớp Document sẽ được tạo và chuyển thông tin này ra ngoài framework.


    Các lớp kế thừa của lớp Application định nghĩa lại hoạt động CreateDocument của lớp Application để trả về lớp kế thừa cần thiết của lớp Document. Khi một lớp kế thừa của Application được khởi tạo, nó có thể khởi tạo các đối tượng của lớp Document của ứng dụng cụ thể mà không cần biết về lớp đó. Chúng ta gọi hoạt động CreateDocument là một factory method bởi vì nó chịu trách nhiệm “sản xuất” một đối tượng.
    ...

  6. #6
    Ngày gia nhập
    10 2008
    Bài viết
    11

    Mặc định factory method

    có ai có sách dịch về các mẫu trong design patter ko ? gởi cho mình luôn đi. thanks

  7. #7
    Ngày gia nhập
    02 2008
    Bài viết
    88

    Khỏi tìm vô ích, chẳng có cuốn sách dịch đó đâu.
    Đã được chỉnh sửa lần cuối bởi anhtuyenbk : 20-12-2008 lúc 12:13 AM.
    Mình từ Caulacbovb qua)
    Giã từ VB6 đến với VB.Net, C# và Java.

Các đề tài tương tự

  1. Khi nào thì dùng design pattern như Abstract Factory , Factory Method , Singleton , Buider ....???
    Gửi bởi ngocsonaat trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 01-10-2013, 03:39 PM
  2. Bài tập về mẫu factory method và decorator trong lập trình C#?
    Gửi bởi princehai trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 28-02-2012, 08:52 PM
  3. Instance method và class method khác nhau như thế nào?
    Gửi bởi zenstorm trong diễn đàn Thắc mắc lập trình Objective-C
    Trả lời: 4
    Bài viết cuối: 24-02-2012, 09:36 AM
  4. Factory
    Gửi bởi cuopbien trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 06-01-2009, 01:20 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn