Chuyển đến nội dung chính

Data-Driven Programming

Data-Driven Programming Data driven progamming is a programming model where the data itself controls the flow of the program and not the program logic. It is a model where you control the flow by offering different data sets to the program where the program logic is some generic form of flow or of state-changes. set1: DOWN - STOP - START - STOP - UP - STOP set2: UP - DOWN - UP - DOWN For example if you have program that has four states: UP - DOWN - STOP - START You can control this program by offering input (data) that represents the states: The program code stays the same but data set (which is not of a dynamic input type but statically given to the computer) controls the flow. Although there are more than a few ideas as to what data driven programming is, allow me to give an example using a data structure and a function. Non data driven example: data_lloyd = {'name': 'Lloyd', 'lives': 'Alcoy } data_jason = {'name': 'Jason', 'lives':

Lập trình hướng đối tượng (OOP) là gì?

 

Lập trình hướng đối tượng (OOP) là gì? 

OOP (viết tắt của Object Oriented Programming) – lập trình hướng đối tượng là một phương pháp lập trình dựa trên khái niệm về lớp và đối tượng. OOP tập trung vào các đối tượng thao tác hơn là logic để thao tác chúng.

OOP là nền tảng của các design pattern hiện nay.

Mục tiêu của OOP là tối ưu việc quản lý source code, giúp tăng khả năng tái sử dụng và quan trọng hơn hết là giúp tóm gọn các thủ tục đã biết trước tính chất thông qua việc sử dụng các đối tượng.

Đối tượng (Object) và Lớp (Class) trong OOP là gì?

Đối tượng (Object)

Đối tượng trong OOP bao gồm 2 thành phần chính:

  • Thuộc tính (Attribute): là những thông tin, đặc điểm của đối tượng
  • Phương thức (Method): là những hành vi mà đối tượng có thể thực hiện

Để dễ hình dung, ta có một ví dụ thực tế về đối tượng là smartphone. Đối tượng này sẽ có:

  • Thuộc tính: màu sắc, bộ nhớ, hệ điều hành…
  • Phương thức: gọi điện, chụp ảnh, nhắn tin, ghi âm…

Lớp (Class)

Lớp là sự trừu tượng hóa của đối tượng. Những đối tượng có những đặc tính tương tự nhau sẽ được tập hợp thành một lớp. Lớp cũng sẽ bao gồm 2 thông tin là thuộc tính và phương thức.

Một đối tượng sẽ được xem là một thực thể của lớp.

Tiếp nối ví dụ ở phần đối tượng (object) phía trên, ta có lớp (class) smartphone gồm 2 thành phần:

  • Thuộc tính: màu sắc, bộ nhớ, hệ điều hành…
  • Phương thức: gọi điện, chụp ảnh, nhắn tin, ghi âm…

Các đối tượng của lớp này có thể là: iPhone, Samsung, Oppo, Huawei…

Ưu điểm của lập trình hướng đối tượng OOP

  • OOP mô hình hóa những thứ phức tạp dưới dạng cấu trúc đơn giản.
  • Code OOP có thể sử dụng lại, giúp tiết kiệm tài nguyên.
  • Giúp sửa lỗi dễ dàng hơn. So với việc tìm lỗi ở nhiều vị trí trong code thì tìm lỗi trong các lớp (được cấu trúc từ trước) đơn giản và ít mất thời gian hơn.
  • Có tính bảo mật cao, bảo vệ thông tin thông qua đóng gói.
  • Dễ mở rộng dự án.

4 đặc tính cơ bản của OOP

Tính đóng gói (Encapsulation)

Tính đóng gói cho phép che giấu thông tin và những tính chất xử lý bên trong của đối tượng. Các đối tượng khác không thể tác động trực tiếp đến dữ liệu bên trong và làm thay đổi trạng thái của đối tượng mà bắt buộc phải thông qua các phương thức công khai do đối tượng đó cung cấp.

Tính chất này giúp tăng tính bảo mật cho đối tượng và tránh tình trạng dữ liệu bị hư hỏng ngoài ý muốn.

Tính kế thừa (Inheritance)

Đây là tính chất được sử dụng khá nhiều. Tính kế thừa cho phép xây dựng một lớp mới (lớp Con), kế thừa và tái sử dụng các thuộc tính, phương thức dựa trên lớp cũ (lớp Cha) đã có trước đó. 

Các lớp Con kế thừa toàn bộ thành phần của lớp Cha và không cần phải định nghĩa lại. Lớp Con có thể mở rộng các thành phần kế thừa hoặc bổ sung những thành phần mới.

Ví dụ: 

  • Lớp Cha là smartphone, có các thuộc tính: màu sắc, bộ nhớ, hệ điều hành…
  • Các lớp Con là iPhone, Samsung, Oppo cũng có các thuộc tính: màu sắc, bộ nhớ, hệ điều hành…

Tính đa hình (Polymorphism)

Tính đa hình trong lập trình OOP cho phép các đối tượng khác nhau thực thi chức năng giống nhau theo những cách khác nhau.

Ví dụ: 

  • Ở lớp smartphone, mỗi một dòng máy đều kế thừa các thành phần của lớp cha nhưng iPhone chạy trên hệ điều hành iOS, còn Samsung lại chạy trên hệ điều hành Android.
  • Chó và mèo cùng nghe mệnh lệnh “kêu đi” từ người chủ. Chó sẽ “gâu gâu” còn mèo lại kêu “meo meo”.

Tính trừu tượng (Abstraction)

Tính trừu tượng giúp loại bỏ những thứ phức tạp, không cần thiết của đối tượng và chỉ tập trung vào những gì cốt lõi, quan trọng.

Ví dụ: Quản lý nhân viên thì chỉ cần quan tâm đến những thông tin như:

  • Họ tên
  • Ngày sinh
  • Giới tính

Chứ không cần phải quản lý thêm thông tin về:

  • Chiều cao
  • Cân nặng
  • Sở thích
  • Màu da

Bài đăng phổ biến từ blog này

Công cụ Lập Trình Vim

Vim là gì Vim là một trình soạn thảo văn bản Unix được bao gồm trong Linux, BSD và macOS. Nó được biết đến với tốc độ nhanh và hiệu quả, một phần vì nó là một ứng dụng nhỏ có thể chạy trong một thiết bị đầu cuối (mặc dù nó cũng có giao diện đồ họa), nhưng chủ yếu là vì nó có thể được điều khiển hoàn toàn bằng bàn phím mà không cần menu hoặc chuột. . Ví dụ, để chèn văn bản vào một tệp, bạn nhấn I và nhập. Để điều hướng hoặc ra lệnh (chẳng hạn như Lưu, Xóa lùi, Trang chủ, Kết thúc, v.v.), bạn nhấn Esc trên bàn phím rồi nhấn bất kỳ phím hoặc tổ hợp phím nào tương ứng với hành động bạn muốn thực hiện. Đó là một cách rất khác để chỉnh sửa văn bản so với những gì người dùng máy tính hiện đại mong đợi, nhưng đó là cách quản trị viên Unix trên toàn thế giới chỉnh sửa các tệp cấu hình, thay đổi, tập lệnh và hơn thế nữa. Vim cũng thường được gọi là Vi vì khi nó được viết bởi Bill Joy vào cuối những năm 1970, nó là viết tắt của visual editor. Trước Vi, ít ai tưởng tượng rằng máy tính có thể hoạt

Giới thiệu về Object trong JavaScript

Giới thiệu về Object trong JavaScript Trong JavaScript, một đối tượng là một tập hợp các cặp khóa-giá trị không có thứ tự. Mỗi cặp khóa-giá trị được gọi là một thuộc tính. Khóa của một thuộc tính có thể là một chuỗi. Và giá trị của một thuộc tính có thể là bất kỳ giá trị nào, ví dụ: một chuỗi, một số, một mảng và thậm chí là một hàm. JavaScript cung cấp cho bạn nhiều cách để tạo một đối tượng. Cách phổ biến nhất được sử dụng là sử dụng ký hiệu theo nghĩa đen của đối tượng. Ví dụ sau tạo một đối tượng trống bằng cách sử dụng ký hiệu theo nghĩa đen của đối tượng: let empty = {}; Code language: JavaScript ( javascript ) let person = { firstName : 'John' , lastName : 'Doe' }; Code language: JavaScript ( javascript ) Truy cập thuộc tính Để truy cập thuộc tính của một đối tượng, bạn sử dụng một trong hai ký hiệu: ký hiệu dấu chấm và ký hiệu dạng mảng. 1) Ký hiệu dấu chấm (.) Dưới đây minh họa cách sử dụng ký hiệu dấu chấm để truy cập thuộc tính của một đối tượn

CÁC THUẬT TOÁN SẮP XẾP CƠ BẢN

CÁC THUẬT TOÁN SẮP XẾP CƠ BẢN Khái niệm Bài toán sắp xếp là bài toán giải quyết việc tổ chức dữ liệu theo một trật tự nhất định, thường là tăng dần hoặc giảm dần. phép toán cơ bản cho bài toán sắp xếp: Phép toán đổi chỗ: Là phép toán đảo giá trị 2 biến void swap(datatype &a, datatype & b) { datatype temp = a ; a = b; b = temp ; } Phép toán so sánh: Trả về true nếu a > b và trả về false cho trường hợp ngược lại. bool compare (datatype a, datatype b) { if (a > b) { return true ; } else { return false ; } } Bảng ghi về độ phức tạp của các thuật toán sắp xếp Độ phức tạp càng lớn đồng nghĩa với việc thuật toán chạy càng chậm và càng lâu Ba thuật toán sắp xếp cơ bản 1. Sắp xếp chèn (Insertion Sort) Ý tưởng: Insertion Sort lấy ý tưởng từ việc chơi bài, dựa theo cách người chơi "chèn" thêm một quân bài mới vào bộ bài đã được sắp xếp trên tay. Thuật toán: Tại bư