for new pet-project have question design, decided already, want other opinions on too.
i have 2 classes (simplified):
class myobject { string name {get;set;} enum relation {get;set;} int value {get;set;} } class myobjectgroup { string name {get;set;} enum relation {get;set;} int value {get;set;} list<myobject> myobjects {get;set;} } later in project myobjectgroup , myobject should used equally. go 2 ways:
- create interface:
iobject - create abstract class:
objectbase
i decided go way of interface, later in code must not write objectbase every time iobject ease - other positives way?
and second, adding ixmlserializable whole story? let interface inherit ixmlserializable or have more positives implement ixmlserializable in abstract base class?
generally speaking, approach use in kind of situation have both interface , abstract class. interfaces defines, well, interface. abstract class merely helper.
you can't go wrong approach. interfaces give flexibility change implementation. abstract classes give boilerplate , helper code aren't forced use, otherwise if methods defined in terms of abstract class explicitly.
Comments
Post a Comment