Proszę o przykład jakiegoś kodu źródłowego rozwiązujący ten sam problem w sposób strukturalny i obiektowy.
Przykładem niech będzie włączanie/wyłączanie światła. Kod napiszę w Pythonie, bo język ten jest podobny do pseudokodu. Najpierw przypadek strukturalny:
def switch_light(light_status):
if light_status is True:
print("Light is ON")
else:
print("Light is OFF")
light = True
switch_light(light) # Light is ON
light = False
switch_light(light) # Light is OFF
Obiektowo:
class LightOnState:
def switch(self):
print("Light is ON")
self.new_state = LightOffState()
class LightOffState:
def switch(self):
print("Light is OFF")
self.new_state = LightOnState()
class Light:
def __init__(self, state):
self.state = state
def switch(self):
self.state.switch()
self.state = self.state.new_state
light = Light(LightOnState())
light.switch() # Light is ON
light.switch() # Light is OFF
light.switch() # Light is ON
Obiektowo mamy więc przełączanie stanów bez wykorzystania jakiegokolwiek IF-a. Można więc rzecz, że jak dobrze zaprojektujesz relacje między klasami, to możesz uniknąć kodu strukturalnego, chociaż w praktyce bezsensu jest na siłę omijać takie koncepty jak wyrażenia warunkowe czy pętle.