Hiển thị kết quả từ 1 đến 3 / 3
  1. #1
    Tham gia
    13-08-2002
    Bài viết
    762
    Like
    0
    Thanked 3 Times in 3 Posts

    OOP 1 : Tiến trình trừu tượng

    OOP 1 : Tiến trình trừu tượng của các ngôn ngữ lập trình

    Mọi ngôn ngữ lập trình (NNLT) đều mang một mức độ trừu tượng nhất định. Mức độ phức tạp của mỗi vấn đề/bài toán (cần giải quyết bằng phương pháp lập trình) thực tế phụ thuộc vào mức độ trừu tượng này. Hợp ngữ (assembly) là một sự trừu tượng từ ngôn ngữ máy (mã máy được sinh ra khi ta biên dịch các đoạn code assembly - vốn gồm các từ khóa "gần giống tiếng Anh"). Những NNLT như Fortran, BASIC hay C là một mức độ trừu tượng cao hơn (có cấu trúc) của hợp ngữ. Những NNLT này là sự cải tiến lớn so với hợp ngữ; tuy nhiên ở mức độ trừu tượng của những NNLT này, lập trình viên (LTV) vẫn phải tư duy về cấu trúc máy tính hơn là cấu trúc vấn đề cần giải quyết. Tức là LTV phải thiết lập sự liên hệ giữa mô hình máy tính và mô hình vấn đề thực tế. Điều này đem đến nhiều thách thức trong công việc coding cũng như bảo trì code.

    Thay thế cho việc mô hình hóa máy tính là sự mô hình hóa vấn đề cần giải quyết. Những ngôn ngữ như LISP hay APL đem đến cách nhìn nhận vấn đề từ khía cạnh khác (chẳng hạn như "mọi vấn đề cuối cùng cũng chỉ là những danh sách" hay "mọi vấn đề đều có tính giải thuật"). Tương tự như vậy, PROLOG quan niệm mọi vấn đề là "chuỗi những quyết định". Mỗi ngôn ngữ trên được thiết kế riêng (và là phương án tốt) cho mỗi loại bài toán; tuy nhiên, nếu để giải quyết một loại bài toán có đặc tính cơ bản khác hẳn thì tiêu liền.

    Tiếp cận vấn đề bằng phương pháp lập trình hướng đối tượng (object-oriented programming - OOP) là một bước nhảy vọt trong tư duy lập trình. Lập trình hướng đối tượng là động tác mô hình hóa các thành phần trong miền vấn đề (problem space). Sự mô hình hóa này có tính tổng quát đủ để giải phóng LTV ra khỏi sự ràng buộc về kiểu/loại vấn đề/bài toán. Người ta gọi những thành phần trong miền vấn đề khi được mô hình hóa là những đối tượng (objects). Mỗi đối tượng, tương tự như các đối tượng trong thế giới thực, có những thuộc tính và hành vi riêng của mình. Do phương pháp tư duy OOP rất gần với cách thức tư duy của con người, LTV sẽ được tự do chú trọng vào cấu trúc vấn đề - điều cần giải quyết - hơn là cấu trúc máy. Thực tế, OOP mang đến một mức độ trừu tượng mềm dẻo và mạnh mẽ hơn những cách tiếp cận trước đây.

    Alan Kay rút ra được 5 tính chất cơ bản của SmallTalk – NNLT OO phổ biến đầu tiên, đó là :

    1. Mọi thứ đều là đối tượng (everything is an object). Hãy xem như mỗi đối tượng là một biến đặc biệt. Một đối tượng ngoài việc mang dữ liệu (như các biến thường), còn có thể “được yêu cầu, ra lệnh” từ LTV.
    2. Một chương trình là một lô một lốc các đối tượng có thể “nói chuyện” với nhau bằng cách gửi các thông điệp (a program is a bunch of objects telling each other what to do by sending message). Để “ra lệnh” cho một đối tượng, LTV “gửi một thông điệp” đến đối tượng đó. Cụ thể hơn, một thông điệp cũng giống như một câu gọi hàm (hàm của đối tượng).
    3. Mỗi đối tượng có vùng nhớ riêng được tạo nên từ những đối tượng khác (each object has its own memory made up of other objects). Có thể hiểu là, một đối tượng có thể được cấu thành từ nhiều đối tượng có sẵn khác. Vì vậy, LTV có thể xây dựng một chương trình mà mức độ phức tạp được ẩn giấu sau sự giản dị (dễ dùng) của các đổi tượng.
    4. Mọi đối tượng có một kiểu nhất định (every object has a type). Mỗi đối tượng là một phiên bản của một lớp/kiểu/loại. Ví dụ như đối tượng con Kiki nhà tôi là một phiên bản của lớp chó, hay con Kiki thuộc lớp chó.
    5. Mọi đối tượng cùng kiểu đều có thể nhận cùng thông điệp (all object of a particular type can receive the same messages). Ví dụ như mọi con thuộc lớp chó đều biết cách sủa, con Kiki cũng không ngoại lệ.

    Booch đề xuất một cách mô tả súc tích hơn về đối tượng :
    Một đối tượng có trạng thái, có hành vi và được định danh (an object has state, behaviour and identity )

    >>> Bài 2 : OOP 2 : Giao diện của đối tượng
    Được sửa bởi danceswithwolves lúc 13:11 ngày 18-09-2002
    Quote Quote

  2. #2
    Tham gia
    16-07-2002
    Bài viết
    197
    Like
    0
    Thanked 0 Times in 0 Posts
    cám ơn anh nha, em dang hoc ve cai nay do

  3. #3
    Tham gia
    29-09-2002
    Bài viết
    2
    Like
    0
    Thanked 0 Times in 0 Posts
    chủ đề hay wá,nhớ mail cho tớ khi có bài mới ,ở đây rộng wá lướt không hết.

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •