සංයුතිය එදිරිව සංයුතිය


221

OOP හි ඇති සංයුතිය කුමක්දැයි මට වැටහී ඇත, නමුත් එකතුව යනු කුමක්ද යන්න පිළිබඳ පැහැදිලි අදහසක් ලබා ගැනීමට මට නොහැකි විය. යමෙකුට පැහැදිලි කළ හැකිද?

Answers:


342

සරල නීති:

  1. A "හිමිකාරීත්වය" B = සංයුතිය: A නොමැතිව පද්ධතිය තුළ B ට අර්ථයක් හෝ අරමුණක් නොමැත
  2. A "භාවිතා කරයි" B = සමස්ථකරණය: B ස්වාධීනව (සංකල්පමය වශයෙන්) A වෙතින් පවතී

උදාහරණ 1:

සමාගමක් යනු මිනිසුන්ගේ එකතුවකි. සමාගමක් යනු ගිණුම්වල සංයුතියකි. සමාගමක් ව්‍යාපාර කිරීම නැවැත්වූ විට එහි ගිණුම් අහෝසි වන නමුත් එහි ජනතාව දිගටම පවතී.

උදාහරණ 2: (ඉතා සරල)

පෙළ සංස්කාරකයෙකුට ස්වාරක්ෂක (සංයුතිය) ඇත. පෙළ සංස්කාරකයක් ගොනුවක් භාවිතා කරයි (එකතුව). පෙළ සංස්කාරකය වසා ඇති විට, බෆරය විනාශ වන නමුත් ගොනුවම විනාශ නොවේ.


12
ඉතින් මෝටර් රථයක් එහි කොටස්වල එකතුවක්ද?
ප්‍රතිස්ථාපනය කරන්න

2
එක්රැස් කිරීම වර්ග දෙකක් අතර ඇති වෙනත් සම්බන්ධතාවයකට වඩා වෙනස් වන්නේ කෙසේද?
ප්‍රතිස්ථාපනය කරන්න

60
inreinierpost යථාර්ථයේ දී , මෝටර් රථයක් යනු කොටස් සමූහයක් වන අතර කොටස් යනු හුදෙක් අණු එකතුවකි ... කෙසේ වෙතත්, ආකෘතියක දී ඒ සියල්ල ඔබගේ අවශ්‍යතා මත රඳා පවතී. මෝටර් රථයෙන් ස්වාධීනව එහි ආයු කාලය නිරීක්ෂණය කිරීමට හැකි වන පරිදි එන්ජිම වෙනම ආයතනයක් ලෙස සැලකීම වැදගත් ද? එකම එන්ජිම වෙනත් මෝටර් රථයක නැවත භාවිතා කළ හැකිද? එසේ නම්, ඔබට බොහෝ විට එකතු කිරීම අවශ්‍ය වේ. එසේ නොමැතිනම් ඔබට සංයුතියක් අවශ්‍ය වන්නේ ඔබ මෝටර් රථවල කොටසක් නොවන එන්ජින් ගැන තැකීමක් නොකරන නිසා හෝ එන්ජින් නැවත භාවිතා කිරීම ගැන ඔබ සැලකිලිමත් නොවන බැවිනි.
කර්ටිස් බට්

3
අස්ථානගත වී ඇත්තේ සම්පූර්ණ අවබෝධයක් සඳහා ක්‍රියාත්මක කිරීමේ උදාහරණයකි ...
චෙස්නොකොව් යූරි

1
සමාගමක් ව්‍යාපාර කිරීම නතර කළ විට සේවකයා ගැන කුමක් කිව හැකිද? සේවකයා සහ පුද්ගලයින් විවිධ ආයතන නේද? සමාගම යනු සේවකයින්ගේ සංයුතියක් යැයි මට කිව හැකිද?
අර්ජුන්

38

Http://en.wikipedia.org/wiki/Object_composition වෙතින්

සමස්ථකරණය සාමාන්‍ය සංයුතියට වඩා වෙනස් වන අතර එය හිමිකාරිත්වය ඇඟවුම් නොකරයි. සංයුතියේ දී, අයිති වස්තුව විනාශ වූ විට, අඩංගු වස්තු ද එසේමය. සමස්ථයක් ලෙස ගත් කල, මෙය අනිවාර්යයෙන්ම සත්‍ය නොවේ. උදාහරණයක් ලෙස, විශ්ව විද්‍යාලයකට විවිධ දෙපාර්තමේන්තු (උදා: රසායන විද්‍යාව) අයත් වන අතර සෑම දෙපාර්තමේන්තුවක්ම මහාචාර්යවරුන් ගණනාවක් ඇත. විශ්ව විද්‍යාලය වසා දැමුවහොත්, දෙපාර්තමේන්තු තවදුරටත් නොපවතින නමුත් එම දෙපාර්තමේන්තු වල මහාචාර්යවරු දිගටම පවතිනු ඇත. එබැවින් විශ්ව විද්‍යාලයක් දෙපාර්තමේන්තු වල සංයුතියක් ලෙස දැකිය හැකි අතර දෙපාර්තමේන්තු වල මහාචාර්යවරුන්ගේ එකතුවක් ඇත. ඊට අමතරව, මහාචාර්යවරයෙකුට එක් දෙපාර්තමේන්තුවකට වඩා වැඩ කළ හැකි නමුත් දෙපාර්තමේන්තුවක් එක් විශ්ව විද්‍යාලයකට වඩා වැඩි ගණනක කොටසක් විය නොහැක.

එබැවින් - ඔබ සංයුතිය සමඟ හිමිකාරීත්ව සම්බන්ධතාවයක් ඇති අතර හිමිකරු සිටින විට අයිති වස්තුවද විනාශ වේ - එකතුවක් (සහ අඩංගු වස්තු) ස්වාධීනව පැවතිය හැකිය.

-

යාවත්කාලීන කිරීම: සමාව ඉල්ලීම - මෙම පිළිතුර පසු විපරමෙහි ඉතා සරල ය.

Ur කර්ටිස් බට් ඔහුගේ පිළිතුරෙහි විශිෂ්ට අර්ථ දැක්වීමක් සපයයි: එකතුව හා සංයුතිය


3
ඔබ උපුටා දක්වන උදාහරණයේ දී සංයුතිය එක සිට බොහෝ දක්වා වන අතර සමස්ථකරණයට එක සිට බොහෝ සම්බන්ධතාවයන් ද ගම්‍ය වේ, නමුත් මෙහි දී එය සමුච්චය කිරීම සඳහා බොහෝ සිට බොහෝ සම්බන්ධතා විය හැකිය (අපට එය කළ හැකි යැයි සිතමු ගුරුවරයෙකුට විවිධ දෙපාර්තමේන්තු වල ඉගැන්විය හැකිය). ෙදපාර්තෙම්න්තුවකට විවිධ විශ්ව විද්‍යාලවල ෙකොටසක් ෙනොහැක. සංයුතියෙන් හිමිකාරිත්වය අදහස් වන අතර සමුච්චය සම්බන්ධතාවයෙන් ඔබ්බට නොයයි. උපුටා දැක්වීම නිවැරදි නමුත් අදහස් දැක්වීම එසේ නොවේ.
නිව්ටෝපියන්

1
එයට විනාශය සමග කිසිදු සම්බන්ධයක් නැත! කසළ එකතු කිරීමේ පද්ධතිය යූඑම්එල් අර්ථ දක්වන්නේ නැත.
දර්ශන නාමය

2
මම හිතන්නේ විකිපීඩියා සබැඳිය ප්‍රත්‍යාවර්තක උඩු යටිකුරු වෙමින් පවතින නමුත් මෙය භයානක අර්ථ දැක්වීමකි - ඕල්ඩ් පෙන්වා දුන් පරිදි මෙම සබඳතාවලට GC සමඟ කිසිදු සම්බන්ධයක් නැත. වස්තුවක් තවත් වස්තූන් දෙකක සං component ටකයක් වන විට මෙයද කඩා වැටේ. එනම් බෝල සන්ධියක ඇති පන්දුව කෘතිම අවයව දෙකකට සම්බන්ධ වීමයි. සංරචක සම්බන්ධතාවය ක්‍රියාකාරී යැපීම ගැන ය.
ස්ටීවන් ඒ. ලෝව්

1
මගේ පිළිතුර දැඩි ලෙස නොමැති බව මම එකඟ වෙමි - නමුත් විකිපීඩියා ලිපියද
එසේමය

සංයුතිය හා සමුච්චය අතර වෙනස පැහැදිලිය. සමුච්චය කිරීමේ ගැටළුව නම් එය සාමාන්‍ය ඇසුරට වඩා වෙනස් වන්නේ කෙසේද යන්න පැහැදිලි නැත.
රයිනර්පොස්ට්

21
  • සංයුතිය යනු සංගමයකි

  • සමස්ථකරණය යනු සංගමයකි

  • සංයුතිය ශක්තිමත් සංගමයකි (අඩංගු වස්තුවක ආයු කාලය මුළුමනින්ම රඳා පවතින්නේ බහාලුම් වස්තුව මත නම්, එය ශක්තිමත් ඇසුර ලෙස හැඳින්වේ)

  • සමුච්චය කිරීම දුර්වල සංගමයකි (අඩංගු වස්තුවක ආයු කාලය බහාලුම් වස්තුව මත රඳා නොපවතී නම්, එය දුර්වල ඇසුර ලෙස හැඳින්වේ)

උදාහරණයක්:

class Contained {
    public void disp() {
        System.out.println("disp() of Contained A");
    }
}

public class Container {
    private Contained c;

    //Composition
    Container() {
        c = new Contained(); 
    }

    //Association 
    public Contained getC() {
        return c;
    }

    public void setC(Contained c) {
        this.c = c;
    }     

    public static void main(String[] args) {
        Container container = new Container();
        Contained contained = new Contained();
        container.setC(contained);
    } 
}

2
සංයුතිය හෝ සමුච්චය නොවන සමස්ථකරණය හා ඇසුර අතර වෙනස කුමක්ද?
ප්‍රතිස්ථාපනය කරන්න

20

තනි පැහැදිලි කිරීමක් නොමැත. විවිධ කතුවරුන් එකතුවෙන් විවිධ දේ අදහස් කරයි. බොහෝමයක් එයින් නිශ්චිත කිසිවක් අදහස් නොකරයි.


4
මෙය නිවැරදි පිළිතුරයි. මම එය පොත් දෙකකින් කියවා ඇත්තෙමි, ඉන් එකක් මාටින් ෆෝලර්ගේ යූඑම්එල් ආසවනයයි .
davidhaskins


14

සංයුතිය (මිශ්‍රණය) යනු සරල වස්තූන් හෝ දත්ත වර්ග වඩාත් සංකීර්ණ ඒවාට ඒකාබද්ධ කිරීමේ ක්‍රමයකි. සංයුතිය යනු බොහෝ මූලික දත්ත ව්‍යුහයන්ගේ තීරණාත්මක ගොඩනැඟිලි කොටසකි

සමුච්චය කිරීම (එකතු කිරීම) සාමාන්‍ය සංයුතියට වඩා වෙනස් වන අතර එය හිමිකාරිත්වය අදහස් නොකරයි. සංයුතියේ දී, අයිති වස්තුව විනාශ වූ විට, අඩංගු වස්තු ද එසේමය. සමස්ථයක් ලෙස ගත් කල, මෙය අනිවාර්යයෙන්ම සත්‍ය නොවේ

╔═══════════╦═════════════════════════╦═══════════════════════╗
║           ║       Aggregation       ║      Composition      ║
╠═══════════╬═════════════════════════╬═══════════════════════╣
║ Life time ║ Have their own lifetime ║ Owner's life time     ║
║ Relation  ║ Has                     ║ part-of               ║
║ Example   ║ Car has driver          ║ Engine is part of Car ║
╚═══════════╩═════════════════════════╩═══════════════════════╝

දෙකම වස්තුව අතර සම්බන්ධතාවය නිරූපණය කරන අතර ඒවායේ ශක්තියෙන් පමණක් වෙනස් වේ. රූප විස්තරය මෙහි ඇතුළත් කරන්න

පංති දෙකක් අතර විවිධ ආකාරයේ යැපීම් සඳහා යූඑම්එල් අංකනය රූප විස්තරය මෙහි ඇතුළත් කරන්න

සංයුතිය : එන්ජිම මෝටර් රථයේ කොටසක් බැවින් ඒවා අතර සම්බන්ධතාවය සංයුතිය වේ. ජාවා පන්ති අතර ඒවා ක්‍රියාත්මක වන ආකාරය මෙන්න.

public class Car {
    //final will make sure engine is initialized
    private final Engine engine;  

    public Car(){
       engine  = new Engine();
    }
}

class Engine {
    private String type;
}

සමුච්චය කිරීම : සංවිධානයට පුද්ගලයන් ලෙස සේවකයින් සිටින බැවින් ඔවුන් අතර සම්බන්ධතාවය සමස්ථකරණය වේ. ජාවා පංති අනුව ඒවා පෙනෙන්නේ කෙසේද යන්න මෙන්න

public class Organization {
    private List employees;
}


public class Person {
    private String name;   
}

මූලාශ්රය


පෙර පිළිතුරු 12 කින් පැහැදිලි කර ඇති කරුණු වලට වඩා සැලකිය යුතු කිසිවක් මෙය ඉදිරිපත් කරන බවක් නොපෙනේ
gnat

පුස්තකාල නොමැතිව පොත් පැවතිය හැකි බව විශ්වාසයි. නරක උදාහරණයක්!
ටී හිස්

මෙහිදී සේවකයින්ගේ ලැයිස්තුව සංවිධානාත්මක වස්තුවේ කොටසකි. මෙය සමස්ථයක් වන්නේ කෙසේද?
සල්මාන් මුහම්මද් අයුබ්

ඇසුර එකතුවට වඩා වෙනස් වන්නේ කෙසේද?
රයිනර්පොස්ට්

මම මේ පිළිතුරට කැමතියි. එකතුව සහ සංයුතිය අතර වෙනස කුමක්දැයි එය අවසානයේ මට නිවැරදිව පැහැදිලි කළේය.
පණ්ඩස් රොක්ස්

7

සමුච්චය කිරිගරු of මල්ලක් වැනි සරල එකතුවකි

සංයුතිය යනු කොටුවක ඇති ඉඟි වැනි අභ්‍යන්තර / ක්‍රියාකාරී පරායත්තතාවයන් ය

කාර් සමස්ත මගීන්; ඔවුන් මෝටර් රථයේ ක්‍රියාකාරිත්වය බිඳ දැමීමෙන් තොරව ඇතුළට හා පිටතට පැමිණේ

ටයර් යනු සංරචක ය; එකක් ඉවත් කරන්න, මෝටර් රථය තවදුරටත් නිවැරදිව ක්‍රියා නොකරයි

[සටහන: අමතර ටයරය සමස්තයකි!]


2

මම සෑම විටම සංයුතිය දෙස බලන්නේ 'අවශ්‍යයි', එනම් මෝටර් රථයකට එන්ජිමක් අවශ්‍ය වන අතර , සමුච්චය කිරීම 'අරමුණක් හා සම්බන්ධ දේවල්' ලෙස මම සලකමි. එබැවින් මෝටර් රථ ප්‍රතිසමයන් සමඟ රැඳී සිටීම, මගේ එකතුව වන්නේ මෝටර් රථයක් සහ මගීන් එකට ගෙන ඒම ඇතුළත් ගමනක් නිරූපණය කිරීමයි. ගමනට මෝටර් රථය හෝ මගීන් අයිති නැත, මම විශේෂිත සිදුවීමක් සඳහා අදාළ දත්ත එක්රැස් කරමි. ගමන අවසන් වූ පසු මෝටර් රථය සහ මගීන් ඉදිරියට යයි. මෝටර් රථයක් අවසන් වූ විට, මෝටර් රථය සහ එහි එන්ජිම සාමාන්‍යයෙන් එකට විනාශ වේ.


0

අර්ථාන්විතව, සියලුම කට්ටල උප කුලක වලින් සාදා ඇත, නේද? එබැවින්:

  • සමුච්චය කිරීම යනු එම උප කුලක පියාගේ කට්ටලයට වඩා ස්වාධීනව පවතින විටය. මොනිටරයක් ​​වෙනත් පරිගණකයකට සම්බන්ධ කිරීම සඳහා පරිගණකයෙන් ඉවත් කළ හැකිය.

  • සංයුතිය යනු එම උප කුලක පියාගේ කට්ටලයේ පැවැත්ම මත රඳා පවතින විට ය. කොළයක් ගසක කොටසක් හෝ අක්මාව ශරීරයේ කොටසකි.

මෙම සංකල්ප සංකල්පමය වශයෙන් වස්තු දෙකක් හෝ පන්ති අතර පරායත්තතාව ගැන කතා කරයි. කෙලින්ම වැඩසටහනක, සමස්ථයක් තුළ, පියා වස්තුව බැහැර කරන විට, සමස්ත වස්තු ද බැහැර කළ යුතුය. සංයුතියක් සඳහා එකම අවස්ථාවෙහිදී, සංයුක්ත පුත් වස්තූන් පවතිනු ඇත, එවිට පියාගේ වස්තුව බෙදා හරිනු ලැබේ.


0

මෙම සරල උදාහරණය ගැන:

වස්තු සමූහයක් යනු සංයුතියකි. වස්තූන් වෙත දර්ශක සමූහයක් යනු එකතුවකි.

මම පළමුවැන්න මකා දැමුවහොත් එහි අන්තර්ගතය එය සමඟ අතුරුදහන් වේ. දෙවැන්න, අනෙක් අතට එහි සාමාජිකයන්ගේ පැවැත්මට කිසිදු බලපෑමක් නොකර අතුරුදහන් විය හැකිය.


3
පෙර පිළිතුරු 11 හි දක්වා ඇති සහ පැහැදිලි කර ඇති කරුණු වලට වඩා සැලකිය යුතු කිසිවක් මෙය එකතු කරන බවක් නොපෙනේ
gnat

ගෞරවනීය ලෙස එකඟ නොවන්න, @gnat. මේ දෙක ක්‍රියාත්මක කළ හැකි ආකාරය පිළිබඳ ප්‍රයෝජනවත් උදාහරණයකි. මිනිසුන් උදාහරණ සමඟ වඩා හොඳින් ඉගෙන ගනී. (මා මෙහි පැමිණියේ දර්ශක සාමාජිකයෙකු එකතුවක් විය හැකි බවත්, වස්තු සාමාජිකයෙකු සංයුතියක් බවත් මගේ අවබෝධය පරීක්ෂා කිරීමට ය. එය කෙලින්ම ආමන්ත්‍රණය කිරීමට ඇති එකම පිළිතුර මෙයයි.)
බොබ් ස්ටේන්
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.