3 Answers
- Design pattern dùng để tổ chức lớp, hàm hay cả 1 chương trình hệ thống, nó giúp mọi thứ trở nên rõ ràng, mềm dẻo và khoa học hơn. Nhưng chưa chắc nó đã làm chương trình của chúng ta tối ưu (chạy nhanh) hơn.
- Thuật toán thì thường được dùng để giải quyết hoặc tối ưu một bài toán cụ thể nào đó, ví dụ như sắp xếp, tìm kiếm và kết quả là chúng ta có được 1 hàm để sử dụng để giải quyết các bài toán kia.
Như vậy 2 thứ này dùng cho 2 phạm vi và mục đích khác nhau em ạ.
-
0
Design pattern
thì bạn nên so sánh Design pattern
với Architecture
thì sẽ hợp lý hơn.
Thông thường một hệ thống sẽ có nhiều Level và Scope :
1: Function- implementation of a function
2: Class- implementation of a class
3: Project- relations between classes
4: Solution- relations between projects
5: System- relations between solutions
Design pattern
Với Design pattern
thì sẽ target đến 3 Scope đầu tiên để thiết kếcác mối quan hệ, tổ chức cho fun, class
trong một project. (Project ý hiểu ở đây có thể coi là Service trong microservice)
Với Design pattern
chúng ta sẽ đi sâu vào chi tiết của project.
Architecture
Với Architecture
thì target đến 2 Scope cuối cùng là (Solution- relations between projects và System- relations between solutions) tuy nhiên đôi khi nó care thêm cả (Project- relations between classes nhưng rất rất hiếm)
Với Architecture
thì thông thường chúng ta sẽ nghĩ nhiều về mặt kiến trúc của hệ thống và sẽ không đi sâu vào chi tiết..
Architecture nói đến vấn đề kết hợp mọi thứ trong 1 hệ thống để nó làm việc chơn chu với nhau.
Algorithm (Thuật toán)
Thuật toán thì nó không nằm trong thiết kế hệ thống, thuật toán thì giống như anh Dũng có nói : Nó được sử dụng để giải quyết hoặc tối ưu một bài toán cụ thể nào đó một cách tốt nhất với nhu cầu của mình.
Ví dụ minh họa.
Ví dụ về xây một dinh thự gồm có nhà ở, bể bơi, nhà tắm, khu đá bóng...etc..
Architecture : Sẽ thiết kế để biết được dinh thự sẽ có những gì (Nhà ở, bể bơi, nhà tắm, nhà ăn...) và chúng sẽ được đặt ở đâu trong toàn dinh thự của chúng ta và các mối liên kế giữa chúng.
Design pattern: Sẽ thiết kế ở trong nhà tắm thì sẽ có những gì, đặt ở đâu.... VD: Tắm chỗ nào, nơi để đồ, nơi treo quần áo tắm, máy xấy tóc...etc...
Algorithm : Còn thuật toán thì dễ hiểu rồi nên mình k nói nhé. (Ví dụ thuậ toán tìm kiếm, sort, ...)
-
1