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.