Спадкаваньне (праграмаваньне): розьніца паміж вэрсіямі
Змесціва выдалена Змесціва дададзена
д выдаленая Катэгорыя:Праграмаваньне; дададзеная Катэгорыя:Аб’ектна-арыентаванае праграмаваньне з дапамогай HotCat |
д артаграфія |
||
Радок 28:
=== Абмежаваньні праектаваньня з спадкаваньнем ===
* '''Адзінкавасьць''': выкарыстоўваючы простае спадкаваньне, падкляса можа спадкаваць толькі адну бацькоўскую клясу. Працягваючы вышэйзгаданы прыклад, <code>Асоба</code> можа быць альбо <code>Студэнтам</code>, альбо <code>Супрацоўнікам</code>, але не абодвума адразу. Выкарыстаньне [[множнае спадкаваньне|множнага спадкаваньня]] часткова вырашае гэту праблему, бо можна вызначыць клясу <code>СупрацоўнікСтудэнт</code>, якая будзе спадкаваць абедзьве клясы <code>Супрацоўнік</code> і <code>Студэнт</code>. Аднак гэта ўсё роўна дазваляе спадкавацца ад кожнай клясы толькі аднойчы, і таму гэтая
* '''Статычнасьць''': герархія спадкаваньня аб’екта зафіксаваная і вызначаецца толькі аднойчы, калі выбіраецца тып аб’екта, і ня можа быць зьмененая з часам. Такім чынам спадкаваньне не дазваляе аб’екту тыпу <code>Студэнт</code> стаць аб’ектам тыпу <code>Супрацоўнік</code> з захаваньнем стану сваёй бацькоўскай клясы <code>Асоба</code>.
Радок 35:
=== Ролі і спадкаваньне ===
Часам праектаваньне, заснаванае на спадкаваньні, выкарыстоўваецца замест роляў. Роля, напрыклад, '''Студэнт''' — гэта роля '''Асобы''' — апісвае характарыстыкі наяўнага аб’екта, таму што аб’ект узаемадзейнічае зь іншым аб’ектам (напрыклад, асоба ў ролі студэнта мусіць наведваць заняткі). Пэўныя мэтады аб’ектна-арыентаванага праектаваньня не адрозьніваюць такога выкарыстаньня роляў ад звычайных аспэктаў аб’ектаў. Але
З пункту погляду мадэляваньня такія абмежаваньні часьцяком непажаданыя, таму што яны выклікаюць штучныя абмежаваньні на будучую пашыральнасьць сыстэмы аб’ектаў, што выкліча складанасьці падчас рэалізацыі будучых зьменаў з-за таго, што патрабуецца абнаўленьне бягучай спраектаванай мадэлі.
|