Python Adaptor pattern -
say have following class
class multiplepeopleinbook(object): def __init__(self, names, ages, book_title): self._names = names self._ages = ages self._book_title = book_title @property def names(self): return self._names @property def ages(self): return ages @property def book_title(self): return book_title now need have class, 1 represents book 1 person in it.
class singlepersoninbook(object): def __init__(self, multiple_person_object): self._person = multiple_person_object @property def name(self): return self._person.names[0] @property def age(self): return self._person.ages[0] so, create multiplepeopleinbook object this:
mpib = multiplepeopleinbook(['bob', 'foo'], [12,24],'foo book') and singlepersoninbook following:
spib = singlepersoninbook(multiplepeopleinbook(['bar'], [122], 'bar book') questions: setting correctly?
how book_title spib? need have method in singlepersoninbook adapter? if so, point of making adapter?
can write init method spib this:
def __init__(self, name, age, book_title): self._person = multiplepeopleinbook([name],[age],boo_title) this way, create spib object this:
spib = singlepersoninbook('bar', 122, 'bar book') this looks cleaner me
how book_title spib? need have method in singlepersoninbook adapter? if so, point of making adapter?
yes, do. making adapter pointless in example. better solution make abstraction people in book 2 implementations (single , multi). basic question - need ?
can write init method spib this:
def __init__(self, name, age, book_title): self._person = multiplepeopleinbook([name],[age],boo_title)this way, create spib object this:
spib = singlepersoninbook('bar', 122, 'bar book')this looks cleaner me
you can, simple abstraction better in case.
Comments
Post a Comment