Các mẫu design pattern – kiến tạo – Prototype và Singleton và Builder

Posted: December 21, 2015 in Design Pattern

Prototype và Singleton :

Prototype được sử dụng trong trường hợp:
Tránh việc tạo nhiều lớp con cho mỗi đối tượng tạo như của Abstract Factory Pattern.
Giảm chi phí để tạo ra một đối tượng mới theo “chuẩn”, tức là việc này tăng Performance so với việc sử dụng từ khóa new để tạo đối tượng mới.
Để cài đặt Prototype Pattern, tạo ra một clone() Method ở lớp cha, và triển khai ở các lớp con.
– Cách nhân bản trong Prototype có 2 kiểu:
Shallow copy: chỉ nhân bản được value type.
Deep copy: nhân bản được value type và reference type.

Ví dụ :

class Car có 5 đặc điểm :
Tên vỏ bánh, màu sơn phủ , động cơ , tên xe, hình dáng

Factory 85_delux_rwx : sx 2 dòng Car_US và Car_japan
Car_US : vỏ 85, sơn Delux , động cơ RWX , Ford , thể thao .
Car_japan : vỏ 85 , sơn Delux, động cơ RWX , Toyota , chiến trường.

class Car sẽ có dạng :

class Car{
String Tyre;
String Color;
String Engine;
String Name;
String Sharp;
void CloneWrap()
{
Car wrapperCar = new Car();
wrapperCar.Tyre = Type;
wrapperCar.Engine = Engine;
wrapperCar.Color = Color;
return wrapperCar;
}
};

USING in main code :


Car* carOfUs = new Car();
// do st to init here
Car* carOfJp = carOfUs->CloneWrap();
carOfJp->Name = "diem khac biet day";

Singleton : tạo 1 instance duy nhất để làm việc, cái này nhiều quá rồi lười viết quá. Tham khảo thêm tại đây :

Mẫu Singleton kết hợp với toán tử new

 

Builder :

Mẫu này là đại điện cho tính đa hình quen thuộc, nhưng thực hiện lúc khởi tạo. Dùng switch để tách ra kiểu đối tượng hiện thực hóa interface.

Vậy thôi, tìm hiểu trên mạng thêm nhá. Lười quá !!!!

 

Leave a comment