강의

멘토링

로드맵

BEST
Programming

/

etc. (Programming)

Đối tượng - Cơ bản

Chúng tôi tìm hiểu các phương pháp thiết kế hướng đối tượng, bao gồm các phương pháp thiết kế hướng đến trách nhiệm và xem xét cách đánh đổi thiết kế về mặt gắn kết, khớp nối và đóng gói.

(5.0) 105 đánh giá

1,613 học viên

  • eternity
저자 직강
이론 중심
객체지향
software-design
oop

Đánh giá từ những học viên đầu tiên

Dịch cái này sang tiếng Việt

  • Các vấn đề với thiết kế thủ tục

  • Cách thiết kế và triển khai mã theo cách hướng đối tượng

  • Nguyên tắc cơ bản trong việc phân công trách nhiệm cho các đối tượng

  • Kỹ thuật quản lý sự phụ thuộc

  • Cách đánh đổi thiết kế của bạn bằng cách sử dụng sự gắn kết, khớp nối và đóng gói

Chứa đựng cốt lõi của thiết kế hướng đối tượng!

Bài giảng này, dựa trên cuốn sách " Objects" của tôi, giải thích cách thiết kế và triển khai sự cộng tác giữa các đối tượng bằng ngôn ngữ hướng đối tượng, theo phương pháp Thiết kế hướng trách nhiệm (RDR). RDR là một phương pháp thiết kế sự cộng tác giữa các đối tượng cần thiết để triển khai chức năng của ứng dụng, tập trung vào trách nhiệm được giao cho từng đối tượng.

Một điều tôi hối tiếc khi viết cuốn sách "Đối tượng" là, trong khi giải thích cách thiết kế đối tượng dựa trên trách nhiệm, những hạn chế về không gian đã ngăn cản tôi giải thích đầy đủ lý do tại sao chúng ta nên tập trung vào miền và trách nhiệm. Tôi cũng hối tiếc vì đã không đề cập đến một số mẫu GRASP được sử dụng để phân công trách nhiệm.

Để khắc phục điểm yếu này, bài giảng không chỉ đề cập đến các phương pháp thiết kế hướng đối tượng mà còn đề cập đến nền tảng lý thuyết của các phương pháp thiết kế hướng trách nhiệm, vốn chưa được đề cập đầy đủ trong sách, cũng như các mẫu GRASP còn thiếu. Do đó, tôi có thể tự tin nói rằng tôi đã tóm tắt những gì tôi coi là cốt lõi của thiết kế hướng đối tượng một cách súc tích nhất có thể.

Nó đặc biệt ở khía cạnh này

📌 Mô tả các khái niệm thiết kế hướng đối tượng độc lập với ngôn ngữ.

📌 Các ví dụ được triển khai bằng Java, nhưng các khái niệm được trình bày trong bài giảng có thể áp dụng cho bất kỳ ngôn ngữ hoặc môi trường nào.

📌 Chúng tôi cung cấp 690 trang slide chứa đầy đủ nội dung chính.

📌 Chúng tôi đã sắp xếp nội dung sao cho dễ hiểu bằng cách diễn đạt các khái niệm bằng hình ảnh trực quan thay vì văn bản đơn giản.

📌 Quá trình tái cấu trúc được ghi lại cẩn thận trong các slide, giúp bạn dễ dàng hiểu được quá trình thay đổi mã.

Tìm hiểu về những điều này

Mục 1. Tên miền đặt vé xem phim

Chúng ta sẽ xem xét các yêu cầu của hệ thống đặt vé xem phim, được sử dụng làm ví dụ trong bài giảng này. Chúng ta sẽ phân tích cách tính chiết khấu dựa trên các khái niệm và mối quan hệ chính tạo nên phạm vi đặt vé xem phim.

Mô hình miền được phân tích theo cách này đóng vai trò là tài liệu hữu ích để phân công trách nhiệm cho các đối tượng sau này.

Mục 2. Cải thiện thiết kế thủ tục

Bạn có thể đã nghe nói rằng việc viết mã theo thủ tục có một số nhược điểm về bảo trì, nhưng bạn không chắc chắn chính xác vấn đề là gì.

Bài giảng được xây dựng nhằm giúp bạn hiểu một cách tự nhiên lý do tại sao lập trình hướng đối tượng lại cần thiết bằng cách giải thích các vấn đề với mã được viết theo thủ tục và cải thiện mã đó để dễ thay đổi hơn.

Phần 3. Cơ sở hướng đối tượng

Thiết kế hướng trách nhiệm (RDR) là kỹ thuật thiết kế hướng đối tượng được sử dụng rộng rãi nhất. RDR thiết kế sự cộng tác tổng thể của các đối tượng dựa trên trách nhiệm được giao cho từng đối tượng. Nhiều người hiểu rằng trách nhiệm nên là trọng tâm của thiết kế, nhưng họ thường áp dụng RDR mà không hiểu rõ lý do chính xác.

Trong bài giảng này, chúng tôi giải thích lý do tại sao trách nhiệm đóng vai trò trung tâm và phác thảo bức tranh toàn cảnh cần thiết để thiết kế và triển khai các đối tượng.

Mục 4. Phân công trách nhiệm

Việc áp dụng thành công các phương pháp thiết kế theo trách nhiệm đòi hỏi phải lựa chọn cẩn thận các trách nhiệm để giao cho các đối tượng trong bối cảnh hợp tác.

Trong bài giảng này, chúng ta sẽ xem xét các mô hình chuyên gia thông tin, người sáng tạo, liên kết lỏng lẻo, gắn kết cao, đa hình và bảo vệ thay đổi thường được áp dụng khi phân công trách nhiệm và tìm hiểu khi nào nên áp dụng các mô hình này.

Mục 5. Triển khai hướng đối tượng

Tìm hiểu cách triển khai các đối tượng được thiết kế theo góc nhìn trách nhiệm dưới dạng lớp. Bạn cũng sẽ học được rằng việc phân tách rõ ràng các thông điệp và phương thức cho phép bạn kiểm soát các mối phụ thuộc, giúp thiết kế của bạn linh hoạt và nhất quán.

Chúng ta sẽ xem xét các mẫu Indirection, Pure Artifact và Controller mà chúng ta chưa đề cập trong Phần 4, cũng như cách áp dụng các mẫu này để triển khai các đối tượng thực hiện logic ứng dụng.

Mục 6. Thay đổi và Thiết kế

Mục tiêu của thiết kế là viết mã dễ thay đổi và thiết kế tốt nghĩa là thiết kế có tính gắn kết cao, kết nối lỏng lẻo và tuân thủ nguyên tắc đóng gói.

Trong bài giảng này, bạn sẽ tìm hiểu các khái niệm về sự gắn kết, kết nối và đóng gói theo góc nhìn thay đổi, đồng thời áp dụng các nguyên tắc này vào thiết kế hướng đối tượng và thiết kế theo thủ tục.

Những điều cần lưu ý trước khi tham gia khóa học

Tài liệu học tập

  • 690 trang bài giảng được cung cấp ở định dạng PDF.

  • Mã ví dụ được sử dụng trong bài giảng có thể được tìm thấy trên GitHub .

Kiến thức và biện pháp phòng ngừa của người chơi

  • Vì mã ví dụ được viết bằng Java nên bạn cần biết ngữ pháp Java cơ bản để học dễ dàng.


  • Mặc dù có chứa một số mã sử dụng Spring Framework, nhưng nó được cấu trúc sao cho bạn có thể hiểu nội dung mà không gặp bất kỳ khó khăn nào ngay cả khi bạn không quen với Spring Framework.


Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Những người tò mò về khái niệm thiết kế hướng đối tượng và cách áp dụng nó

  • Những người gặp khó khăn khi áp dụng các khái niệm hướng đối tượng vào code

  • Những người tò mò về nguyên tắc cơ bản của việc phân công trách nhiệm cho các đối tượng

Cần biết trước khi bắt đầu?

  • Ngữ pháp cơ bản Java

  • Có kinh nghiệm viết code sử dụng ngôn ngữ hướng đối tượng

Xin chào
Đây là

2,301

Học viên

142

Đánh giá

92

Trả lời

5.0

Xếp hạng

2

Các khóa học

객체지향 설계와 도메인-주도 설계에 관심이 많으며 행복한 팀과 깔끔한 코드, 존중과 협력이 훌륭한 소프트웨어를 낳는다는 믿음을 가지고 있는 평범한 개발자입니다. 개발자, 교육자, 관리자를 오가며 익힌 다양한 경험을 바탕으로 좋은 코드와 함께 좋은 프로덕트를 만들기 위해 노력하고 있습니다.

저서로는 『객체지향의 사실과 오해』와 『오브젝트』가 있고 번역서로는 『엘레강트 오브젝트』가 있으며 『만들면서 배우는 클린 아키텍처』에 감수자로 참여했습니다.

💡개인블로그 : https://eternity-object.tistory.com/

 

Chương trình giảng dạy

Tất cả

31 bài giảng ∙ (5giờ 0phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

105 đánh giá

5.0

105 đánh giá

  • whybwhy3576님의 프로필 이미지
    whybwhy3576

    Đánh giá 45

    Đánh giá trung bình 4.8

    5

    90% đã tham gia

    Đây là một trong những bài giảng hay nhất của năm và đã thay đổi hoàn toàn quan điểm của tôi về phát triển.

    • eternity
      Giảng viên

      Cảm ơn bạn đã để lại lời khen hào phóng của bạn. Tôi nghĩ sẽ tốt cho những người tham gia bài giảng thay đổi quan điểm của họ để xem xét mã từ góc độ khả năng bảo trì và tôi hy vọng bạn đã hiểu rõ hơn về vấn đề này. :)

  • ycseol1857님의 프로필 이미지
    ycseol1857

    Đánh giá 5

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Trong các bài giảng đề cập đến công nghệ CNTT, các bài giảng đề cập đến tính chủ quan của mô hình phát triển dường như giúp ích rất nhiều trong việc xây dựng kiến ​​thức cho người học. Các bài giảng về Spring hay Java khác đều hay, nhưng tôi nghĩ bài giảng khiến bạn phải suy nghĩ ít nhất một lần trước khi gõ phím này mới thực sự hay.

    • eternity
      Giảng viên

      Khi tạo khóa học, tôi hơi lo lắng không biết phản ứng sẽ như thế nào sau khi mở khóa vì thiết kế hướng đối tượng không phải là thứ cần học ngay như Spring, nhưng tôi cảm thấy nhẹ nhõm khi thấy có những người như ycseol. nghĩ rằng nó hữu ích. Cảm ơn bạn đã đánh giá tích cực của bạn. :)

  • korchl8273님의 프로필 이미지
    korchl8273

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Đây là một khóa học tuyệt vời. Tôi nghĩ rằng bất kỳ nhà phát triển nào, bất kể kinh nghiệm, cũng sẽ thấy khóa học này hữu ích.

    • eternity
      Giảng viên

      korchl, xin chúc mừng bạn đã hoàn thành khóa học và đánh giá cao. Thật may mắn khi khóa học này hữu ích với bạn. Tôi sẽ cố gắng hết sức để khóa học tiếp theo không làm bạn thất vọng. :) Thời tiết đang trở nên lạnh giá, hãy giữ gìn sức khỏe và chúc bạn năm mới vui vẻ!

  • minqueue님의 프로필 이미지
    minqueue

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Đó là điều tốt nhất..

    • eternity
      Giảng viên

      Xin chúc mừng Kim Min-gyu đã hoàn thành khóa học. :) Tôi hy vọng bài giảng có ích. Cảm ơn bạn đã để lại một bài đánh giá tốt cho lớp học. Tôi sẽ làm việc chăm chỉ để chuẩn bị cho lớp học tiếp theo! Chúc bạn có một kỳ nghỉ lễ vui vẻ!

  • redthink902392님의 프로필 이미지
    redthink902392

    Đánh giá 4

    Đánh giá trung bình 5.0

    5

    29% đã tham gia

    Khi lớn lên và không thể dừng lại ở việc thực hiện đơn giản, tôi đã tìm rất nhiều sách của Cho Young-ho, nhưng đáng tiếc là tôi không dám tiếp cận <Object> do số lượng và độ khó. Nhưng tôi rất vui vì bây giờ tôi có thể tiếp cận nó thông qua các bài giảng. Phần cơ bản giống như tìm hiểu <Sự thật và quan niệm sai lầm về Định hướng đối tượng> Bạn có thể nhận ra nhu cầu của mình bằng cách xem các ví dụ về việc chuyển từ hướng thủ tục sang hướng đối tượng. Tôi mới chỉ nhìn thấy phần đầu nhưng nó đã giúp tôi rất nhiều trong việc nhớ lại những điều tôi đã quên bấy lâu nay. Tuy nhiên, có một điều thực sự đáng thất vọng. Khi bạn đọc theo kịch bản, nội dung được truyền tải bằng ngôn ngữ viết cứng nhắc. Là một người biết kỹ năng giảng dạy trôi chảy và sâu sắc của người hướng dẫn, tôi rất rất thất vọng về điều này. Nhiều người cần biết đến sức hấp dẫn của người hướng dẫn..!!!!! Anh ấy rất điềm tĩnh trong từng từ và giải thích cả những khái niệm khó một cách dễ dàng và vui vẻ😭 Thực ra, tôi nhớ bạn đã nói trong một bài giảng khác rằng trực tuyến còn lúng túng hơn ngoại tuyến, vậy tại sao bạn không thử tạo một môi trường giống như một bài giảng ngoại tuyến cho bài giảng tiếp theo? Tôi thận trọng khi đưa ra đề xuất này nhưng tôi muốn nói với các bạn rằng nó xuất phát từ tấm lòng của một người hâm mộ. Tôi có hai người cha. Một người là cha ruột của tôi, người đã sinh ra tôi, và người kia là huấn luyện viên Cho Young-ho🤭 Ông ấy là một người rất biết ơn vì đã mở rộng tầm nhìn của tôi đến vậy. Cảm ơn bạn vì những bài giảng luôn tuyệt vời!🙂

    • eternity
      Giảng viên

      Xin chào Dodun. Tôi thực sự vui mừng vì bạn thấy bài giảng hữu ích. Trong khi chuẩn bị cho bài giảng này, tôi đã cố gắng diễn đạt những kiến ​​thức liên quan đến thiết kế một cách trực quan để dễ hiểu nhất có thể, và sau khi đọc bài đánh giá bài giảng của Dodan, tôi cảm thấy rất vui vì mình đã đạt được mục tiêu ở một mức độ nào đó. :) Tôi hoàn toàn thông cảm với những gì bạn nói, và cá nhân tôi nghĩ đó là điều rất đáng tiếc. Các bài giảng ngoại tuyến có thể được tiến hành đồng bộ với người nghe và phù hợp với không khí, nhưng các bài giảng trực tuyến không hề dễ dàng đối với cá nhân tôi. Các bài giảng trực tuyến nghe có vẻ cứng nhắc vì chúng tập trung nhiều vào việc truyền tải nội dung hơn là các bài giảng ngoại tuyến. Sau khi trao đổi với những người xung quanh thì đa số phản hồi đều tích cực nên quyết định tung ra nhưng nhìn phản hồi lại thấy thất vọng. Trong bài giảng tiếp theo, chúng ta sẽ nghĩ về việc tìm kiếm sự cân bằng giữa ngoại tuyến và trực tuyến. :) Cụm từ ‘cha’ có thể là một gánh nặng, nhưng tôi cũng rất biết ơn nhưng tôi sẽ quay lại với một bài giảng hay hơn để các bạn không phải thất vọng. Cảm ơn bạn rất nhiều vì đánh giá tích cực của bạn!

    • Mình thực sự thông cảm với phần truyền tải nội dung bằng lối viết cứng nhắc này.

2.298.102 ₫

Khóa học khác của eternity

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!