Canowicakte

New Member

Download miễn phí Bài giảng Mẫu strategy - Sắp đặt kế hoạch hành động với mẫu chiến lược





KẾ HOẠCH CHỈNH SỬA
Làm thế nào mà ý tưởng phân chia các đoạn mã dễ thay đổi sẽ hoạt động trong ví dụ
Vehicle/StreetRacer/Helicopter đã nhắc trước đây. Theo ý kiến của giám đốc điều hành, phần
được thay đổi nhiều nhất là cách go , do đó chúng ta sẽ tách nó ra. Trong thuật ngữ về
thiết kế mẫu, mỗi cách hiện thực một cách được gọi là 1 thuật toán(algorithm) hay có
thể gọi là 1 chiến lược (strategy). Vì vậy bạn có thể tạo một tập hợp các giải thuật để sử dụng
cho các biến của bạn như StreetRacer, FormulaOne, Helicopter, và Jet . Làm như thế để phân
chia các đoạn mã dễ thay đổi vào trong thuật toán. Từng thuật toán sẽ hoàn thành 1 nhiệm
vụ.



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:


“Lại sai”, bạn nói
Vị giám đốc nhìn bạn nhíu mày.
“Mẫu thiết kế”, bạn giải thích. “Các giải pháp chung để giải quyết cho các vấn đề lập trình
thường gặp. Không chỉ vậy, nó còn giúp việc lập trình tốt hơn, bảo dưỡng, và công việc nâng
cấp dễ dàng hơn . Ông thấy đó, việc thuê một chuyên gia như tui có nhiều ý nghĩa, khi tui thấy
một vấn đề trong việc lập trình mà có thể giải quyết theo một mẫu thiết kế nào đó, tui có thể
nói chi tiết về nó cho ông biết.
“Tốt”, các lập trình viên trong công ty nói một cách miễn cưỡng, “ý kiến của anh về mẫu thíêt
kế nghe cũng hay đấy. Nhưng chúng ta đã sử dụng phương pháp lập trình hướng đối tượng,
điều đó chưa giải quyết được vấn đề à?”
“Không” bạn nói. Thực tế thì nội dung chính của mẫu thiết kế là chúng mở rộng khái niệm lập
trình hướng đối tượng.
MỞ RỘNG KHÁI NIỆM LẬP TRÌNH HƢỚNG ĐỐI TƢỢNG?
Chúng ta nhắc lại cuốn sách của Gang Of Four (GOF: Bộ tứ tác giả), tựa đề “Mẫu thiết kế: Sử
dụng lại các thành phần trong việc lập trình phần mềm” do nhà xuất bản Addison Wesley,
1995 xuất bản. “Sử dụng lại” là một khía cạnh quan trọng khi làm việc với các mẫu thiết kế, và
vì thế nó cũng giải quyết được các vấn đề của lập trình hướng đối tượng(OOP). tui sẽ thảo luận
trước về OOP trong chương này, và sau đó sẽ cho bạn thấy mối tương quan giữa OOP và mẫu
“Strategy” hay còn gọi là mẫu chiến lược
2
2
OOP ban đầu được phát triển như là một phương pháp lập trình cho các vấn đề lớn và phức
tạp. Ý tưởng chính là đóng gói tất cả chức năng vào trong đối tượng. Nói cách khác, đây là
phương pháp chia để trị. Trước khi OOP ra đời, bạn lập trình theo phương pháp thủ tục, bạn có
thể chia các chức năng của chương trình thành các thủ tục khác nhau, nhưng điều đó càng ngày
càng phức tạp khi kích cỡ chương trình lớn thêm. Khi đó chúng ta cần có một phương
pháp mới để quản lý các thủ tục một cách dễ dàng, và đó là nguyên nhân ra đời của một
phương pháp mới, phương pháp quản lý trên đối tượng.
Ví dụ, bạn hãy nhìn vào nhà bếp và cách hoạt động của nó, thật là cơ man các sự phức tạp. Tủ
lạnh phải có các bơm làm mát, bộ phận cảm biến nhiệt, quạt và vân vân. Bếp lò có thể bao
gồm nhiều thiết bị như bộ phận nhiệt độ, bộ định thời gian, đèn..Theo cách nhìn nhận này, khi
ta xem xét nhà bếp với mọi bộ phận cùng một lúc, ta thấy nhà bếp quá phức tạp.
Nhưng nếu bạn bao bọc từng thành phần, thành các đối tượng, tình hình đã có thể dễ dàng xử
lý hơn rất nhiều. Đây là cái tủ lạnh. Đây là cái bếp lò. Đó là cái máy rửa chén và vân vân.
Không vấn đề gì lớn cả. Các chi tiết nhỏ làm việc cùng nhau được ta đóng gói thành một đối
tượng.
Đó cũng chính là các đối tượng trong lập trình hướng đối tượng. Bạn gộp các chức năng vào
trong một đối tượng và chúng dễ dàng được nhận biết, nào là cái tủ lạnh, bếp lò hay máy rửa
chén…Và phương pháp lập trình dựa trên các đối tượng được gọi là lập trình hướng đối tượng (
Tất nhiên bạn chẳng nghe ai nói tới lập trình hướng tủ lạnh, hay lập trình hướng bếp lò… )
Ví dụ, trong chương trình của bạn, bạn có một đối tượng tên là “Màn hình”, nó bao gồm các
chức năng để hiển thị dữ liệu mà bạn mong muốn. Một đối tượng khác tên “Cơ sở dữ liệu” sẽ
làm nhiệm vụ giao tiếp với máy chủ cơ sở dữ liệu và vân vân…Có thể có nhiều phức tạp bên
trong từng đối tượng, nhưng khi bạn đóng gói mọi thứ vào đối tượng, mọi thứ đã trở nên dễ
dàng hơn rất nhiều. Bạn có thể làm việc với khái niệm đối tượng “Màn hình” và một số chức
năng đơn giản của nó như ThiếtLậpHệSốQuét, CanhChỉnhMànHình, ThíêtLậpBộĐệmVideo… và
hàng tá chức năng khác. Nó làm cho lập trình trở nên dễ dàng hơn, và đó là lý do tại sao lập
trình hướng đối tượng đã trở thành phương pháp mạnh mẽ và phổ biến hơn bao giờ hết.
BỐN KHÁI NIỆM CHÍNH CỦA OOP
OOP bao gồm bốn khái niệm chính là trừu tượng, đóng gói, đa hình và kế thừa. tui sẽ thảo
luận chúng trong phần sau đây:
Trừu tƣợng là gì?
Khi bạn làm việc với mẫu thiết kế, bạn sẽ thấy phần lớn đều liên quan đến khái niệm trừu
tượng. Trừu tượng là cách thức bạn nghĩ ra để xem xét việc giải quyết một vấn đề nào đó.
Trừu tượng không phải là một kỹ thuật lập trình. Thực chất, nó chỉ có nghĩa là bạn phải nhận
thức được vấn đề trước khi áp dụng kỹ thuật hướng đối tượng.
Trừu tượng là cách bạn phân chia, cách giải quyết vấn đề thành những phân đoạn nhỏ hơn.
Đây là cách thức bạn giải quyết vấn đề bằng cách chia chúng ra thành từng phần nhỏ có thể
quản lý được. Nói cách khác, trừu tượng hóa một bài toán, đơn giản chỉ là cách giải quyết bài
toán theo kiểu hướng đối tượng. Các dữ liệu cần thiết cho từng đối tượng sẽ trở thành thuộc
tính của đối tượng đó, thuộc tính đó có thể là riêng tư cho đối tượng hay công cộng cho đối
tượng khác sử dụng. Các hành vi mà đối tượng thể hiện trong thế giới thực cũng trở thành một
hành động của chúng và được viết thành mã của chương trình.
Khi bạn chắc chắn đã tìm ra hướng giải quyết một bài toán đúng đắn, bạn mới có thể áp dụng
các mẫu thiết kế. Thông thường, khi làm việc với mẫu thiết kế bạn sẽ tốn nhiều thời gian hơn
cho việc trừu tượng hóa các khái niệm, hơn là làm việc với từng đối tượng cụ thể.
Đóng gói là gì?
3
3
Khi bạn đưa tất cả chức năng và dữ liệu vào trong một đối tượng, bạn đã “đóng gói” chúng.
Đây là sức mạnh thực sự của việc lập trình hướng đối tượng. Bạn đã gỡ bỏ sự phức tạp của đối
tượng khi đóng gói tất cả dữ liệu vào trong đối tượng đó. “Đóng gói” là cách bạn đã đưa hàng
tá đường dây điện, ống, cảm biến nhiệt, đèn… vào trong một đối tượng là tủ lạnh.
Khi bạn đóng gói chức năng vào trong một đối tượng, bạn quyết định cách thức mà đối tượng
giao tiếp với thế giới bên ngoài. Một cái tủ lạnh có thể một quản lý hàng tá thứ phức tạp bên
trong, tuy nhiên người sử dụng chỉ quan tâm là nó có thể làm lạnh thức ăn hay không? Cùng
cách thức đó, bạn cũng chỉ định đâu là chức năng, thuộc tính bên trong của tủ lạnh, đâu là
chức năng thuộc tính nó giao tiếp với thế giới bên ngoài.
Có một ý tưởng đằng sau việc đóng gói – Bạn che giấu những thứ phức tạp bên trong đối
tượng và tạo ra một giao diện đơn giản để đối tượng giao tiếp với phần mã còn lại của bạn.
Mẫu thíêt kế cũng là một trường hợp đặc biệt của sự đóng gói. Bạn phải đóng gói những gì bạn
đánh giá là dễ thay đổi nhất Một số mẫu thiết kế xoay quanh ý tưởng là trích ra những phần mã dễ
thay đổi nhất hay phần cần bảo trì nhiều và đóng gói chúng vào một đối tượng riêng để
dàng dàng xử lý hơn. Xuyên suốt cuốn sách này, bạn sẽ nhìn thấy nhiều về sự đóng gói và
cách thức bất ngờ mà mẫu thiết kế g...
 

Các chủ đề có liên quan khác

Top