Các mẫu thiết kế Python - Chống
Chống lại các mẫu tuân theo một chiến lược đối lập với các mẫu thiết kế được xác định trước. Chiến lược bao gồm các cách tiếp cận chung cho các vấn đề chung, có thể được chính thức hóa và có thể được coi là một phương pháp phát triển tốt. Thông thường, các mô hình chống là đối lập và không mong muốn. Các mẫu chống là một số mẫu nhất định được sử dụng trong phát triển phần mềm, được coi là các phương pháp lập trình tồi.
Các tính năng quan trọng của chống mẫu
Bây giờ chúng ta hãy xem một vài đặc điểm quan trọng của các mẫu chống.
Tính đúng đắn
Những mẫu này thực sự phá vỡ mã của bạn và khiến bạn làm những điều sai trái. Sau đây là một minh họa đơn giản về điều này -
class Rectangle(object):
def __init__(self, width, height):
self._width = width
self._height = height
r = Rectangle(5, 6)
# direct access of protected member
print("Width: {:d}".format(r._width))
Khả năng bảo trì
Một chương trình được cho là có thể bảo trì được nếu nó dễ hiểu và dễ sửa đổi theo yêu cầu. Mô-đun nhập khẩu có thể được coi là một ví dụ về khả năng bảo trì.
import math
x = math.ceil(y)
# or
import multiprocessing as mp
pool = mp.pool(8)
Ví dụ về chống mẫu
Ví dụ sau giúp chứng minh các mô hình chống lại -
#Bad
def filter_for_foo(l):
r = [e for e in l if e.find("foo") != -1]
if not check_some_critical_condition(r):
return None
return r
res = filter_for_foo(["bar","foo","faz"])
if res is not None:
#continue processing
pass
#Good
def filter_for_foo(l):
r = [e for e in l if e.find("foo") != -1]
if not check_some_critical_condition(r):
raise SomeException("critical condition unmet!")
return r
try:
res = filter_for_foo(["bar","foo","faz"])
#continue processing
except SomeException:
i = 0
while i < 10:
do_something()
#we forget to increment i
Giải trình
Ví dụ này bao gồm việc trình bày các tiêu chuẩn tốt và xấu để tạo một hàm trong Python.