12/08/2018, 17:31

Prototype Pattern trong ruby

Tiếp nối cho serive về Design Pattern mình tìm hiểu và muốn chia sẽ. Bài viết này mình sẽ chia sẽ về Prototype pattern trong ruby. Nó thuộc nhóm Creational Patterns. và là một pattern điển hình của lập trình hướng đối tượng OOP. Ý tưởng của pattern này liên quan đến việc khởi tạo một Object mới ...

Tiếp nối cho serive về Design Pattern mình tìm hiểu và muốn chia sẽ. Bài viết này mình sẽ chia sẽ về Prototype pattern trong ruby.

Nó thuộc nhóm Creational Patterns. và là một pattern điển hình của lập trình hướng đối tượng OOP. Ý tưởng của pattern này liên quan đến việc khởi tạo một Object mới từ một Object đã có thay vì tạo mới. Nếu việc tạo ra Object quá lớn và tốn nhiều tài nguyên thì việc áp dụng pattern này là khá phù hợp.

Prototype(bản mẫu) nó là kỹ thuật nhân bản đối tượng, tức là tạo ra một đối tượng mới từ một đối tượng được xây dựng trước đó bằng 1 method clone(). Và kỹ thuật này gồm các bước :

  • Tạo dựng một đối tượng là cơ sở. sở hữu một phương thức với tác dụng là sao chép clone().
  • Các đối tượng con sẽ sở hữu method đó và cài đặt lại cho phù hợp với từng object cụ thể.
  • Nội dung của method clone() sẽ trả về một object là bản mẫu của Object được xây dự làm cơ sở. và các object con có thể sử dụng được method clone() này.

Lúc đó sẽ phát sinh 2 vấn đề về việc nhân bản đó là object mẫu có chứa các object con khác. Object mới sẽ tham chiếu(chỉ tham chiếu đến các object con bên trong object mẫu)hoặc nhận dữ liệu cụ thể(copy lại toàn bộ values của object con bên trong object mẫu), lúc này sẽ có 2 hình thức nhân bản:

  • Shallow copy: chỉ tham chiếu với các object con của object mẫu hay cụ thể hơn là object mới và object mẫu sẽ cùng trỏ tới object con trong object mẫu mà thôi. ( Loạn não             </div>
            
            <div class=
0