Lie Ryan a écrit :
(snip)

Since in function in python is a first-class object, you can instead do
something like:

def process(document):
    # note: document should encapsulate its own logic
    document.do_one_thing()

Obvious case of encapsulation abuse here. Should a file object encapsulate all the csv parsing logic ? (and the html parsing, xml parsing, image manipulation etc...) ? Should a "model" object encapsulate the presentation logic ? I could go on for hours here...


and I think for your purpose, the mixin pattern could cleanly separate
manipulation and document while still obeying object-oriented pattern
that document is self-sufficient:

# language with only single-inheritance can only dream to do this
>
class Appendable(object):
    def append(self, text):
        self.text += text
class Savable(object):
    def save(self, fileobj):
        fileobj.write(self.text)
class Openable(object):
    def open(self, fileobj):
        self.text = fileobj.read()
class Document(Appendable, Savable, Openable):
    def __init__(self):
        self.text = ''

Anyone having enough experience with Zope2 knows why this sucks big time.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to