1. Trang chủ
  2. » Công Nghệ Thông Tin

C 3.0 Design Pattern Lơi noi dau

7 158 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 99,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Khi trở về nhà, viết phần mềm, giấy tờ, và một cuốn sách về chủ đề này, tôi nhận ra rằng chúng tôi đã chứng kiến sự khởi đầu của một cuộc cách mạng thực sự trong lập trình.. Tôi muốn viế

Trang 1

Lời nói đầu

Vì sao tôi viết cuốn sách này

Năm 2002, Microsoft Research đã tổ chức một hội nghị quốc tế ở Cambridge, Vương quốc Anh, để tiết lộ hệ thống Rotor của họ, mà sẽ mang C

# và NET Để các lập trình viên không phải nền Windows Khi trở về nhà, viết phần mềm, giấy tờ, và một cuốn sách về chủ đề này, tôi nhận ra rằng chúng tôi đã chứng kiến sự khởi đầu của một cuộc cách mạng thực sự trong lập trình Kể từ sự ra đời của Java vào năm 1996, lập trình đã trở thành nền tảng độc lập: với Java byte-code, chương trình có thể chạy bất cứ nơi nào Tính độc lập này, tuy nhiên, chỉ giới hạn trong các chương trình viết bằng ngôn ngữ Java NET, mặt khác, là nền tảng độc lập: nó cho phép các chương trình bằng các ngôn ngữ khác nhau tương tác, nhưng, cho đến ngày hôm đó, chỉ có trên Windows

Trong năm năm tiếp theo, các nền tảng mới đã hỗ trợ NET (ví dụ: Mono) và phần cứng mới đã hỗ trợ chip Intel (mà Windows chạy) Kết quả là NET bây giờ chạy gần như bất cứ nơi nào Do đó, chuyên môn về lập trình C# là một kỹ năng rất linh động Nhưng C# tiếp tục cải thiện như một ngôn ngữ, và chúng ta đang ở khởi đầu một bước tiến mới về phía trước trong C# 3.0, trong đó cung cấp lợi ích to lớn về năng suất và tính dễ lập trình Sau khi

đã viết một văn bản giới thiệu C# vào năm 2003, * tôi nhận ra rằng những lợi ích của các tính năng mới công bố tại năm 2007, sẽ được cảm nhận ở một mức độ tiên tiến hơn nhiều của việc phát triển phần mềm Tôi muốn viết một cuốn sách thứ hai giới thiệu C# 3.0 cho các nhà phát triển đã biết về ngôn ngữ

cơ bản, nhưng những gì sẽ trở thành công thức mà có thể giới thiệu một ngôn ngữ và giải quyết nhu cầu của độc giả một cách chính xác, ví dụ, và thêm tính thực tế?

Về design patterns Design patterns tóm lược chung, chấp nhận, và chứng minh cách sử dụng ngôn ngữ có tính năng giống nhau Chúng tạo thành một mức độ diễn ngôn ở một tầm cao mới, và chúng thực hiện và thúc đẩy việc lập trình tốt hơn Nhưng, có một yếu tố đó là sự thật xung quanh các mẫu thiết kế, và người ta có ấn tượng rằng chúng có được nói nhiều hơn là sử dụng Tôi muốn thay đổi điều đó và làm cho design patterns thực sự tiếp cận được lập trình thông thường, sử dụng ngôn ngữ tốt nhất cho chúng: C# 3.0 Kết quả là cuốn sách này

Cuốn sách này dành cho

Nếu bạn là một lập trình viên yêu code của bạn, mà mỗi dòng có một ý nghĩa chính xác và mọi tính năng có một vị trí chính xác, cuốn sách này là dành cho bạn Nó sẽ giúp bạn trong công việc chính của bạn làm cho code của bạn đúng, thanh lịch, mở rộng được, và hiệu quả Nếu bạn phục vụ cho mục đích kinh doanh của tổ chức của bạn bằng cách tập trung vào chất lượng code

Trang 2

của bạn, bạn cần một cuốn sách như C# 3.0 Design Patterns Kiến thức về các mẫu thiết kế cũng là một bước tiến lớn đối với những người làm việc từ lập trình viên cấp thấp cho tới các kỹ sư phần mềm và kiến trúc sư

Thông qua việc đọc cuốn sách này, bạn sẽ có được các kỹ năng trong:

 Lập trình design patterns

 Ký pháp mô hình hóa UML cơ bản để đại diện cho các pattern

 Lựa chọn các mẫu thích hợp cho các kịch bản nhất định và so sánh lựa chọn triển khai

 Sử dụng tính năng ngôn ngữ tiên tiến của C# 3.0 để thực hiện các mẫu

có hiệu quả và thanh lịch

Mặc dù không được viết như một cuốn giáo trình, C# 3.0 Design Patterns có thể phù hợp rất tốt cho một khóa học trung bình về các mẫu thiết

kế hay lập trình cao cấp

Sơ đồ và mã cho tất cả các mẫu và các ví dụ liên quan và các nghiên cứu trong cuốn sách này có thể được tìm thấy trên trang web của cuốn sách, http://www.oreilly.com/catalog/97805965277301

Những gì bạn cần biết

Cuốn sách này là dành cho các lập trình viên biết làm thế nào để chương trình trong C# 1.0 hoặc Java 1.4 và những người muốn chuyển sang các tính năng hiện đại hơn của ngôn ngữ mới nhất Tất cả các tính năng mới của C# 3.0, cũng như nhiều tính năng mới từ C# 2.0, được giới thiệu bằng ví

dụ và tóm tắt trong thanh bên để dễ dàng tham khảo Vì vậy cuốn sách sẽ hướng dẫn các lập trình viên rất tốt

Cuốn sách không đưa thêm bất kỳ hiểu biết nào về design patterns Nó bao gồm một bộ đầy đủ của 23 các mẫu ban đầu được đề xuất trong sách của

Erich Gamma, Richard Helm, Ralph Johnson, và John Vlissides: Design

Patterns: Elements of Reusable Object Oriented Software trong năm 1994 và

bây giờ tạo thành một cơ sở giới thiệu phổ biến các mô hình đang nổi lên nhiều lĩnh vực khác (như an ninh, tranh chấp, và kiến trúc thiết kế) Khi kết thúc cuốn sách, người đọc sẽ có một nền tảng vững chắc các mẫu thiết kế như chúng thường được hiểu

Cuốn sách này được tổ chức

Sau khi giới thiệu trong chương 1, cuốn sách sẽ nói cụ thể về 23 design patterns chính Mỗi chương bàn về hai hoặc ba mẫu, được chọn bởi vì chúng

có một số ứng dụng chung và có thể được so sánh ở phần cuối của chương Các mẫu được chia thành ba nhóm: cấu trúc, sáng tạo, và hành vi

Chúng ta bắt đầu với các mẫu cấu trúc, nghiên cứu các mẫu Decorator, Proxy, và Bridge trong Chương 2, các mẫu Composite và Flyweight trong

1 Bây giờ thì bạn vào: http://examples.oreilly.com/9780596527730/ (ND)

Trang 3

chương 3 và các mẫu Adapter và Façade trong chương 4 Sau đó chúng ta chuyển sang các mẫu sáng tạo, khám phá các mẫu Prototype, Factory Method,

và Singleton ở chương 5, sau đó là các mẫu Abstract Factory và Builder trong chương 6 Bốn chương cuối cùng giải quyết các thể loại lớn nhất, các mẫu hành vi: Chương 7 tập trung vào các mẫu Strategy, State, và Template Method; Chương 8 về các mẫu Chain of Responsibility và Command; Chương 9 về các mẫu Iterator, Mediator, và Observer còn Chương 10 về các mẫu Visitor, Interpreter, và Memento

Thảo luận về mỗi mẫu sẽ bao gồm các phần sau đây:

Vai trò (Role)

Một mô tả ngắn gọn cao cấp của mẫu và những gì nó được hiểu để sửa dụng

Minh họa (Illustration)

Một ví dụ về nơi mà các mẫu có thể được sử dụng trong lập trình một

hệ thống máy tính hiện đại, minh họa một bối cảnh thế giới thực với một hình ảnh hoặc biểu đồ để giúp bạn nhớ mẫu

Thiết kế (Design)

Một nhận dạng của các đối tượng liên kết với nhau trong các mô hình

và vai trò của chúng, giải thích trong một sơ đồ UML, với các liên kết trở lại với các đối tượng chủ chốt trong hình minh họa

Thực hiện (Implementation)

Một sự phát triển tinh tế từng bước của một chương trình ngắn để minh họa các mô hình sử dụng các thuật ngữ được giới thiệu trong phần "Thiết kế"

Ví dụ (Example)

Một chương trình thứ hai cung cấp một ví dụ về mẫu, thường là trong điều khoản của ví dụ minh họa, nơi mà lập trình rời xa một tuân thủ chặt chẽ với những điều khoản mẫu

Sử dụng (Use)

Một cuộc thảo luận về kịch bản trong thế giới thực, nơi mẫu có thể được sử dụng, kết thúc với một bảng liệt kê các điều kiện nào đó sẽ phải sử dụng mẫu đó

Bài tập (Exercises)

Một danh sách các bài tập của mức độ khó khác nhau được thiết kế để nâng cao sự hiểu biết của bạn về mẫu đang được thảo luận

Ở cuối mỗi chương bạn sẽ tìm thấy sự so sánh giữa các mẫu thảo luận tại đó và một cuộc thảo luận về cách chúng phù hợp với những thứ đã có trước đây

Trang 4

Trật tự của các mẫu đã được chọn lựa cẩn thận để thể hiện một sự phát triển dần dần trong C# 3.0 thuần thục Triển khai thực hiện các mẫu trước đó trong mỗi phần đòi hỏi rất ít mà không có sẵn trong C# 1.0, trong khi các mẫu sau tinh vi hơn trong việc thực thi của chúng và tận dụng các tính năng tiên tiến hơn hiện diện trong C# 3.0 Cách tiếp cận này cho phép các tính năng mới được giới thiệu nội tuyến, khi chúng trở nên có liên quan, thay vì tất cả cùng một lúc ở đầu hoặc cuối của văn bản

Cuốn sách này không có ý định trở thành một hướng dẫn tham khảo cho toàn bộ C# hoặc thậm chí C# 3.0, nhưng là một hướng dẫn thiết thực để

sử dụng các tính năng thú vị nhất của ngôn ngữ Mặc dù nhấn mạnh vào sự phát triển trong phiên bản gần đây nhất, tôi cũng chọn ra một số tính năng của

C # 1.0 và 2.0 mà tôi nghĩ là thực sự hữu ích nhưng mà không thường được

sử dụng trong mã Danh sách các tính năng C# được thể hiện một cách chính xác theo Lời nói đầu này

Chức năng đặc biệt của cuốn sách này bao gồm:

 Minh họa bằng hình ảnh của các mẫu, giúp bạn tập trung vào ý nghĩa của những gì mỗi mẫu có thể thực hiện trong cuộc sống thực

 Các câu đố có liên quan để minh họa các sơ đồ UML

 Xếp gọn code "lý thuyết" có thể thích ứng với nhiều tình huống

 Bảng hướng dẫn khi lựa chọn một mẫu cụ thể

 Bảng so sánh các mô hình tương tự, cho thấy cách chúng khác biệt

 Danh sách những ưu điểm, nhược điểm, và hạn chế của từng mẫu

 Thử thách và bài tập để giúp bạn kiểm tra kiến thức của bạn tốt hơn

Những gì bạn cần để sử dụng cuốn sách này

Để chạy các chương trình trong cuốn sách này, bạn cần:

 Một máy tính sẽ chạy Windows XP trở lên Nền tảng tương thích bất

kỳ máy tính hoặc Mac nền Intel với một máy ảo

 Microsoft NET Framework 3.5 Nó có sẵn ở http://www.microsoft.com/downloads

 Một trình soạn thảo chương trình hoặc môi trường lập trình Visual Studio là một chương trình lý tưởng để lập trình C# 3.0, nhưng nó không phải là rất cần thiết

 Các tài liệu tham khảo C# 3.0, có sẵn trên trang web của Microsoft (http://msdn2.microsoft.com/vcsharp, 529 trang)

Tất cả các chương trình trong cuốn sách này đã được chuẩn bị trên một iMac Intel Core 2 Duo chạy Mac OS X 10.4 và 5 (Tiger và Leopard) và Windows XP trên máy ảo Parallels Trình soạn thảo được sử dụng là SciTE

Trang 5

Tìm kiếm những gì bạn cần

Cuốn sách này được thiết kế để phục vụ như là một nguồn tài nguyên học tập Tìm hiểu về C# 3.0 và các mẫu thiết kế, sẽ có lúc bạn sẽ cần phải tìm một tính năng đặc biệt hoặc một mô hình liên quan Các bảng được nêu trong Chương 11 để dễ dàng tham khảo Các ký hiệu sơ đồ lớp UML được đề cập trong Chương 1 Bạn cũng sẽ thấy rằng có một vài chương trình, vì lý do không gian, không được trình bày đầy đủ trong văn bản Tất cả được đưa vào Phụ lục

Quy ước sử dụng trong cuốn sách này

Các quy ước đánh máy sau được sử dụng trong cuốn sách này:

nghiêng

Đây là điều khoản mới, URL, và địa chỉ email

chiều rộng cố định

Dùng để chỉ ra các mã ví dụ và trích đoạn, lệnh, tùy chọn, các biến, thuộc tính, chức năng, các loại, các lớp học, không gian tên, phương pháp, tài sản, các thông số, các giá trị, các đối tượng, các sự kiện, và các thẻ XML

Chiều rộng cố định đậm

Dùng để nhấn mạnh hoặc làm nổi bật trong các mã ví dụ

Chiều rộng cố định nghiêng

Cho văn bản cần được thay thế bằng các giá trị người dùng cung cấp

Biểu tượng này có nghĩa đây là một mẹo, hoặc gợi ý, hoặc ghi chú nói chung

Biểu tượng này chỉ ra một cảnh báo hoặc cảnh báo

Sử dụng code ví dụ

Cuốn sách này ở đây để giúp bạn hoàn thành công việc của bạn Nói chung, bạn có thể sử dụng mã code trong cuốn sách này trong các chương trình và tài liệu của bạn Bạn không cần phải liên hệ với chúng tôi để cho phép trừ khi bạn đang tái tạo một phần đáng kể của các mã Ví dụ, viết một chương trình sử dụng một số khối mã từ cuốn sách này không yêu cầu sự cho phép Bán hoặc phân phối đĩa CD-ROM của các ví dụ từ sách O'Reilly đòi hỏi sự cho phép Trả lời một câu hỏi bằng cách trích dẫn cuốn sách này và trích dẫn code ví dụ không yêu cầu sự cho phép Kết hợp một số lượng đáng

kể của code ví dụ từ cuốn sách này vào tài liệu sản phẩm của bạn đòi hỏi sự cho phép

Trang 6

Chúng tôi đánh giá cao sự ghi nhận, nhưng không yêu cầu Và ghi nhận

tác giả thường bao gồm tựa đề, tác giả, nhà xuất bản, và ISBN Ví dụ: “C# 3.0

Design Patterns, by Judith Bishop Copyright 2008 Judith Bishop, 978-0-596-52773-0.”

Nếu bạn nghĩ rằng việc bạn sử dụng các mã ví dụ không thuộc phạm vi

sử dụng hợp lý hoặc sự cho phép đưa ra ở trên, hãy liên hệ với chúng tôi tại:

permissions@oreilly.com.

Ý kiến và câu hỏi

Tác giả sẽ rất vui mừng khi nghe những gì bạn nghĩ về cuốn sách và cho dù bạn có bất kỳ ý tưởng tốt để mở rộng xuất bản C# design patterns Vui lòng gửi ý kiến và câu hỏi liên quan đến cuốn sách này cho nhà xuất bản:

O’Reilly Media, Inc

1005 Gravenstein Highway North

Sebastopol, CA 95472

800-998-9938 (in the United States or Canada)

707-829-0515 (international or local)

707-829-0104 (fax)

Chúng tôi có một trang web cho cuốn sách này, nơi chúng tôi liệt kê các đính chính, ví dụ, và bất kỳ thông tin bổ sung Bạn có thể truy cập trang này tại:

http://www.oreilly.com/catalog/9780596527730

Để bình luận hoặc đặt câu hỏi kỹ thuật về cuốn sách này, gửi email đến:

bookquestions@oreilly.com

Để biết thêm thông tin về sách, hội nghị, Trung tâm tài nguyên, và Mạng O'Reilly của chúng tôi, xem trang web của chúng tôi tại:

http://www.oreilly.com

Tác giả cũng có một trang web cho cuốn sách tại:

http://patterns.cs.up.ac.za

Safari® Books Online

Khi bạn nhìn thấy một biểu tượng Safari® Books Online trên trang bìa của cuốn sách công nghệ yêu thích của bạn, có nghĩa là cuốn sách có sẵn trực tuyến qua mạng O'Reilly Safari Bookshelf

Safari cung cấp một giải pháp tốt hơn so với sách điện tử Đó là một thư viện

ảo cho phép bạn dễ dàng tìm kiếm hàng ngàn cuốn sách công nghệ hàng đầu,

Trang 7

cắt và dán mẫu mã, tải về các chương , và tìm câu trả lời nhanh chóng khi bạn cần, thông tin chính xác nhất hiện nay Dùng thử miễn phí tại http://safari.oreilly.com

Lời Cảm ơn

Đầu tiên, tôi xin cảm ơn John Osborn, người đánh máy của tôi tại O'Reilly, đã cho tôi niềm tin vào việc cuốn sách được ra đúng lúc Sự cẩn thận và chuyên môn của anh ấy được đánh giá cao Đến jeff Pepper, người đã đăng ký cuốn sách khá lâu trước đây, cảm ơn rất nhiều Cảm ơn các nhận xét, Eric Lippert, Jim Whitehead, Stefan Gruner, và Pierre-Henri Kuaté có ý kiến sâu sắc, không giữ khách sáo, dẫn đến nhiều sửa đổi nhưng đem lại một cuốn sách cuối cùng tốt hơn nhiều Khoa của tôi tại Đại học Pretoria đã cho tôi các thiết bị mới nhất, và đồng nghiệp của tôi đã cho tôi thời gian để thực sự tập trung khi cần thiết Đặc biệt là tôi cảm ơn Jan Eloff cho sự hỗ trợ và tình bạn của anh ấy Tới Carlo Ghezzi của Politecnico di Milano, người đã ân cần lưu trữ cho tôi vào mùa hè 2007, khi phần lớn dự thảo đầu tiên được viết, grazie mille Sinh viên cũ của tôi Hans Lombard và D-J Miller đã giúp tạo các thông báo rất ngắn bằng một số ví dụ, và tôi thực sự đánh giá cao tâm trí tươi trẻ và cống hiến cho công việc của họ

Viết cuốn sách này sẽ là một trải nghiệm ít thú vị hơn nhiều nếu không

có sự hỗ trợ liên tục và quan tâm của những người bạn tài năng của tôi Nigel Horspool, Rob Koenig, và Rudolph Vosser Họ không bao giờ biết khi nào cuốn sách sẽ thực sự được hoàn thành, nhưng bây giờ nó đã xong Và cuối cùng, mẹ tôi, con trai của tôi, và gia đình của tôi, có tình yêu và niềm vui sống tiếp sức cho tôi về điều này (nhưng khác) sách cảm ơn bạn

—Judith Bishop Pretoria, South Africa

October 2007

Ngày đăng: 27/08/2017, 14:22

TỪ KHÓA LIÊN QUAN

w