รูปแบบการออกแบบ Python - ต่อต้าน

รูปแบบการต่อต้านเป็นไปตามกลยุทธ์ในการต่อต้านรูปแบบการออกแบบที่กำหนดไว้ล่วงหน้า กลยุทธ์นี้รวมถึงแนวทางทั่วไปในการแก้ไขปัญหาทั่วไปซึ่งสามารถทำให้เป็นทางการได้และโดยทั่วไปถือได้ว่าเป็นแนวทางปฏิบัติในการพัฒนาที่ดี โดยปกติรูปแบบการต่อต้านจะตรงกันข้ามและไม่เป็นที่ต้องการ รูปแบบการต่อต้านคือรูปแบบบางอย่างที่ใช้ในการพัฒนาซอฟต์แวร์ซึ่งถือเป็นการเขียนโปรแกรมที่ไม่ดี

คุณสมบัติที่สำคัญของการต่อต้านรูปแบบ

ตอนนี้ให้เราดูคุณสมบัติที่สำคัญบางประการของรูปแบบการต่อต้าน

ความถูกต้อง

รูปแบบเหล่านี้ทำลายรหัสของคุณอย่างแท้จริงและทำให้คุณทำสิ่งผิดพลาด ต่อไปนี้เป็นภาพประกอบง่ายๆของเรื่องนี้ -

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))

การบำรุงรักษา

โปรแกรมกล่าวว่าสามารถบำรุงรักษาได้หากเข้าใจง่ายและปรับเปลี่ยนตามความต้องการ การนำเข้าโมดูลถือได้ว่าเป็นตัวอย่างของการบำรุงรักษา

import math
x = math.ceil(y)
# or
import multiprocessing as mp
pool = mp.pool(8)

ตัวอย่างการต่อต้านรูปแบบ

ตัวอย่างต่อไปนี้ช่วยในการสาธิตรูปแบบการต่อต้าน -

#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

คำอธิบาย

ตัวอย่างรวมถึงการสาธิตมาตรฐานที่ดีและไม่ดีสำหรับการสร้างฟังก์ชันใน Python