Lười biếng part 2: Abstraction để Sờ (SOLID)

Lười biếng part 2: Abstraction để Sờ (SOLID)

Tình cờ xem lại và nâng cấp một số code cũ, nên lấy làm ví dụ triển khai ý luôn.
Chuyện của hồi trước là mình viết một cái model class. Lúc đó mình chỉ viết cho kết nối đến DB (postgres) thành ra code thế này:

class BaseModel :
- constructor :
+ build a Schema from config
+ get postgres pool instance
- some base functions such as get, insert, update, remove, import ... with idea is checking schema before send to db.

BaseModel là 1 Abstraction cho việc CRUD 1 bảng.
Tuy nhiên đến một hôm, mình muốn sử dụng cả api cho các functions get, insert, update, remove ... thành ra mình phải điều chỉnh lại:

class BaseModel: 
- constructor: 
+ still build a schema from config
+ A client object for the base functions.
- base functions with new structure is checking schema and calling client function.
interface BaseClient:
- get, insert, update, remove ...
class ApiClient implements BaseClient
class PGClient implements BaseClient

Client lại là 1 Abstraction và khá là dễ dàng để scale nếu mình viết thêm 1 MySQLCLient.
Vậy, Việc A đang làm BaseModel tiến về SOLID hơn. Ở đây thấy rõ SID.

Kết: Sẽ có bài nên A hay không A, nên Sờ hay không Sờ, liệu đi về SOLID là việc luôn luôn nên làm?

HocNguyenViet 19-03-2017

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Hoc Nguyen Viet

2 bài viết.
0 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Bài viết liên quan
White
0 0
Clojure là ngôn ngữ functional có hỗ trợ OOP. Về mặt khoa học máy tính, có nhiều cách để thực hiện đa hình. Ở phiên bản trước 1.2, đa hình trong Cl...
Ngoc Dao viết gần 2 năm trước
0 0
White
0 0
Lười biếng part 1: tập nói A (Abstraction) thay bằng SOLID Về lập trình chắc nhiều người lúc học OOP đều nghe về SOLID. Mình thì cũng chân ướt châ...
Hoc Nguyen Viet viết 11 tháng trước
0 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
2 bài viết.
0 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!