Я пытаюсь реализовать шаблон стратегии и собираюсь сделать ответ в Stack Strat Pattern . Но понял, что я не смогу скопировать его прямо с летучей мыши. Я хочу реализовать шаблон, но также убедиться, что мои executeReplacement
функции наследуются от базового класса.
class DB():
def __init__(self, league, season, func=None):
self.db_user = os.environ.get('DB_user')
self.db_pass = os.environ.get('DB_pass')
self.MONGODB_URL = f'mongodb+srv://{db_user}:{db_pass}@database-mbqxj.mongodb.net/test?retryWrites=true&w=majority'
self.client = MongoClient(MONGODB_URL)
self.DATABASE = client["Database"]
self.league = league
self.season = season
self.pool = multiprocessing.cpu_count()
if func:
self.execute = func
def execute(self):
print("No execution specified")
def executeReplacement1():
"""Should inherit the the properties of the base class
since it's dependant on it's properties (Connect to Database etc.)"""
print("Push some data to DATABASE")
def executeReplacement2():
"""Should inherit the the properties of the base class
since it's dependant on it's properties (Connect to Database etc.)"""
print("Push some other data to DATABASE")
Как построить шаблон стратегии, чтобы функции замены наследовали свойства базовый класс? Или это, возможно, не оптимальный подход?
Цель состоит в том, чтобы разобрать аргументы из stdin, например:
`db --pu sh EN_PR 2019 player``
Который создаст экземпляр класса DB
, в котором методы связаны с push
, где push
- это функция, которая загружает данные в базу данных.