Single Responsibility Principle
- Zgodnie z założeniami wzorcu projektowania „Single Responsibility Principle”, każda klasa powinna posiadać własny zakres obowiązków którymi będzie się zajmować. Nie powinna przejmować przy tym zadań innych klas, tak aby nie powstała jedna klasa obsługująca wszystko.
- Zgodnie z poniższym przykładem, klasa „Device” definiuje urządzenia, umożliwiając dodawanie oraz usuwanie grup ze wskazanego urządzenia. Natomiast funkcję zapisu danych do pliku przejmuje inna dedykowana do tego zadania klasa „PersistenceManager”.
class Device:
def __init__(self, name):
self.name = name
self.group = []
self.reference = 0
def add_device_to_group(self, text):
self.group.append(f"{self.reference}: {text}")
self.reference += 1
def remove_device_from_group(self, pos):
del self.group[pos]
def __str__(self):
return "\n".join(self.group)
class PersistenceManager:
def save_to_file(self, object, filename):
file = open(filename, "w")
file.write(str(object))
file.close()
device = Device("RKKR-LAB-SW-1")
device.add_device_to_group("Lodz")
device.add_device_to_group("Switches")
print(device)
file = "device.txt"
persistence = PersistenceManager()
persistence.save_to_file(device, file)
with open(file) as fh:
print(fh.read())
1 Response
[…] Single Responsibility Principle […]