Menu
Coddy logo textTech

Bağımlılığın ters çevrilmesi

Coddy'nin Clean Code - Python ile daha iyi kod yazın kursunda ders 26 / 28.

"Soyutlamalara, [somutlaştırmalara değil] dayan."

İlkeyi ihlal eden bir örnek gösterelim,

class LocalStorage:
	def save(self, key, value):
		print("Saved, " + key + ":" + value)

LocalStorage class, key ve value çiftini kaydeder.

Şimdi LocalStorage kullanan başka bir ana class'ımız var,

class App:
	def start(self, key, value):
		storage = LocalStorage()
		storage.save(key, value)

LocalStorage somut bir uygulamadır ve App buna bağlıdır!

Daha iyi yol, bir arayüz (soyut class) oluşturmaktır,

from abc import ABC, abstractmethod


class Storage(ABC):
	@abstractmethod
	def save(self):
		pass

Ardından somut uygulama yerine arayüzün bir örneğini kullanın. 

challenge icon

Görev

Kolay

Size neredeyse tamamlanmış bir kod veriliyor; Storage soyut sınıfını ekleyin.

Uygulamadan sonra, örneğin CloudStorage gibi başka bir somut sınıfa geçmenin kolay olduğunu unutmayın...

Kendin dene

from abc import ABC, abstractmethod


# your code here


class LocalStorage(Storage):
	def save(self, key, value):
		print("Saved, " + key + ":" + value)


class App:
	def __init__(self, storage):
		self.storage = storage

	def start(self, key, value):
		storage.save(key, value)


if __name__ == "__main__":
	storage = LocalStorage()
	app = App(storage)
	key = input()
	value = input()
	app.start(key, value)

Clean Code - Python ile daha iyi kod yazın bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi