Knowledge

Schizophrenia (object-oriented programming)

Source 📝

222:
as a solution, which by static composition avoids any issues of object schizophrenia. On the other end of the spectrum, Herrmann shows that a language featuring contextual
198:
Herrmann reports that the term was coined by William Harrison, IBM Research, around May 1997 in a set of web pages, which discussed problems incurred by some of the common
226:
can be designed in such a way that potential problems of object schizophrenia are essentially irrelevant despite using delegation as a means to share behavior between a
202:(these web pages are no longer publicly available). In the given examples the problem was aggravated by the fact that typical solutions would use a weaker form of 99:, and is more dynamic. Instead of using one class to refine another, delegation allows one object to override the behavior of another. The original object 88:
can be used to override behaviors of a base class, and can be used as a template for objects whose behaviors refine those of the base class.
77: 211: 207: 92: 27: 366: 361: 341: 318: 215: 289: 281: 76:, objects are built on class systems, where an object is an instance of a class. Classes can in turn be related by 84:
provides the fundamental or default behavior of an object, and acts as a template for creating objects, while a
45: 338:
MASPEGHI '10: Proceedings of the 4th Workshop on MechAnisms for SPEcialization, Generalization and inHerItance
219: 210:) where knowledge about the original receiver object is actually lost during delegation. Here the use of 96: 35: 31: 223: 69: 203: 243: 73: 72:
can be defined as a computing concept combining data and behavior, and having an identity. In
16:
Complication arising from delegation and related techniques in object-oriented programming
8: 52:, the former being associated with "split personalities," this configuration is called 285: 186:. Note that while the two objects are separate and have separate physical identity, 44:
can refer to more than one object. By way of metaphor with the public confusion of
333: 199: 355: 306: 49: 218:
do not support the stronger form of delegation. Harrison et al proposed
273: 166:
When delegation is used, the question arises: What is the value of
277: 269: 91:
An alternative to classes and inheritance is prototypes and
190:(whether used explicitly or implicitly) is ambiguous. 353: 103:(analogous to the derived class behaviors) can 111:(analogous to the base class behaviors). If 174:, which is delegated to a method on object 214:is owed to the fact that most mainstream 193: 178:? The identity is split: it can refer to 331: 246: – Computer security vulnerability 354: 263: 107:some of its methods to another object 304: 216:object-oriented programming languages 342:Association for Computing Machinery 334:"Demystifying object schizophrenia" 319:Association for Computing Machinery 170:when evaluating a method on object 13: 48:with the psychiatric diagnosis of 14: 378: 305:Stein, Lynn Andrea (1987-12-01). 332:Herrmann, Stephan (2010-06-22). 60:in object-oriented programming. 282:Springer Science+Business Media 147:executes in the context of the 26:is a complication arising from 325: 298: 257: 46:dissociative identity disorder 1: 266:Invasive Software Composition 250: 220:subject-oriented programming 143:method to execute. However, 7: 367:Prototype-based programming 362:Object-oriented programming 307:"Delegation is inheritance" 237: 97:prototype-based programming 63: 32:object-oriented programming 10: 383: 317:(12): 138–146 – via 30:and related techniques in 151:object, for example, its 127:, then any invocation of 244:Confused deputy problem 74:class-based programming 194:History and discussion 340:(2): 1–5 – via 155:identifier refers to 264:Aßmann, Uwe (2003). 54:object schizophrenia 20:Object schizophrenia 311:ACM SIGPLAN Notices 230:and its associated 95:, which is used in 206:(sometimes called 58:self schizophrenia 24:self schizophrenia 374: 346: 345: 329: 323: 322: 302: 296: 295: 268:(1st ed.). 261: 189: 169: 154: 42: 38: 382: 381: 377: 376: 375: 373: 372: 371: 352: 351: 350: 349: 330: 326: 303: 299: 292: 262: 258: 253: 240: 200:design patterns 196: 187: 167: 159:rather than to 152: 66: 40: 36: 17: 12: 11: 5: 380: 370: 369: 364: 348: 347: 324: 297: 290: 284:. p. 39. 255: 254: 252: 249: 248: 247: 239: 236: 195: 192: 119:method to the 115:delegates its 65: 62: 15: 9: 6: 4: 3: 2: 379: 368: 365: 363: 360: 359: 357: 343: 339: 335: 328: 320: 316: 312: 308: 301: 293: 291:9783662050828 287: 283: 279: 275: 271: 267: 260: 256: 245: 242: 241: 235: 233: 229: 225: 221: 217: 213: 209: 205: 201: 191: 185: 181: 177: 173: 164: 162: 158: 150: 146: 142: 138: 134: 130: 126: 122: 118: 114: 110: 106: 102: 98: 94: 89: 87: 86:derived class 83: 79: 75: 71: 61: 59: 55: 51: 50:schizophrenia 47: 43: 33: 29: 25: 21: 337: 327: 314: 310: 300: 265: 259: 231: 227: 197: 183: 179: 175: 171: 165: 160: 156: 148: 144: 140: 136: 132: 128: 124: 120: 116: 112: 108: 104: 100: 90: 85: 81: 67: 57: 53: 23: 19: 18: 232:base object 228:role object 135:will cause 78:inheritance 356:Categories 274:Heidelberg 251:References 212:forwarding 208:forwarding 204:delegation 123:method of 93:delegation 82:base class 28:delegation 238:See also 105:delegate 64:Overview 34:, where 278:Germany 288:  270:Berlin 70:object 224:roles 286:ISBN 188:self 168:self 153:self 80:: a 41:this 37:self 182:or 145:bar 141:bar 131:on 129:foo 121:bar 117:foo 68:An 56:or 22:or 358:: 336:. 315:22 313:. 309:. 280:: 276:, 272:/ 234:. 163:. 139:s 137:b' 344:. 321:. 294:. 184:b 180:a 176:b 172:a 161:b 157:a 149:a 133:a 125:b 113:a 109:b 101:a 39:/

Index

delegation
object-oriented programming
self/this
dissociative identity disorder
schizophrenia
object
class-based programming
inheritance
delegation
prototype-based programming
design patterns
delegation
forwarding
forwarding
object-oriented programming languages
subject-oriented programming
roles
Confused deputy problem
Berlin
Heidelberg
Germany
Springer Science+Business Media
ISBN
9783662050828
"Delegation is inheritance"
Association for Computing Machinery
"Demystifying object schizophrenia"
Association for Computing Machinery
Categories
Object-oriented programming

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.