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:/
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.