Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Talk:Prototype pattern

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
This article is ratedStart-class on Wikipedia'scontent assessment scale.
It is of interest to the followingWikiProjects:
WikiProject iconJavaLow‑importanceicon
WikiProject iconThis article is within the scope ofWikiProject Java, a collaborative effort to improve the coverage ofJava on Wikipedia. If you would like to participate, please visit the project page, where you can jointhe discussion and see a list of open tasks.JavaWikipedia:WikiProject JavaTemplate:WikiProject JavaJava
LowThis article has been rated asLow-importance on theproject's importance scale.
Note icon
This article has beenautomatically rated by abot or other tool because one or more other projects use this class. Please ensure the assessment is correct before removing the|auto= parameter.
WikiProject iconComputer science
WikiProject iconThis article is within the scope ofWikiProject Computer science, a collaborative effort to improve the coverage ofComputer science related articles on Wikipedia. If you would like to participate, please visit the project page, where you can jointhe discussion and see a list of open tasks.Computer scienceWikipedia:WikiProject Computer scienceTemplate:WikiProject Computer scienceComputer science
???This article has not yet received a rating on theproject's importance scale.
Things you can helpWikiProject Computer science with:

Sentence misunderstood

[edit]

The sentence that compares the Prototype DP to the Abstract Factory DP can be understood in two ways and needs clarification. Thanks.— Precedingunsigned comment added by132.68.50.212 (talk)13:51, 21 February 2013 (UTC)[reply]

References

[edit]

What is GOF (references to an unidentified book)?Tom Peters09:59, 18 January 2006 (UTC)[reply]

"Gang of Four":Design Patterns: Elements of Reusable Object-Oriented Software--Malcohol (talk)09:23, 21 April 2008 (UTC)[reply]

Initialization with an object

[edit]

If I create an object with certain properties, then use this to create another object (by passing it to a constructor) which will be initialised with those properties, this would seem to be a Prototype, but this is a little different from the GoF pattern - any thoughts? --- DannyAyers

Looks like a CopyConstructor to me. --- LairdNelson
You would lose the advantage of polymorphism that the GoF formulation of the Prototype pattern gives you. -- NatPryce
Exactly..Prototyping is all about a replica of myself .I don't know what i'm.ie polymorphism..But i can duplicate myself when some body else needs a duplicate of me and he don't care about my type (Hierarchy in the inheritance tree). --Praveen
By using Copy Constructor, this design pattern can be applied. But in C++ copy constructor is default property means you not need to declare it explicitly.But in other language may be copy constructor had to declare to provide such facility. In this case if some derived class in tree doesn't declare it then this pattern will fail for that hierarchy tree. That may be happen since OO language has the facility of reusability.So to keep pattern language independent I suggest declare the 'Clone' kind function as a pure virtual. That will force each drive class to provide Prototype facility. ---------Akash Gupta

Link Dead

[edit]

The example link is dead ... Please use linkhttp://wwwswt.informatik.uni-rostock.de/deutsch/Lehre/Uebung/Beispiele/PatternExamples/patexamples.htm

The example link is dead ... Please use linkhttp://wwwswt.informatik.uni-rostock.de/deutsch/Lehre/Uebung/Beispiele/PatternExamples/patexamples.htm

62.39.121.22613:31, 7 October 2005 (UTC)Rajiv[reply]

Prototype complexity

[edit]

I wonder why the GoF authors say that Prototype is more complexe than Factory Method which relies on a hierarchy parallel to the Product hierarchy! I think there is a confusion between several problems that the pattern solves. First, Prototype solves the same problem as Factory Method, namely creating instances of classes without naming them. Second, it can be used to build objects faster or more easily by copying already built ones. There certainely are other uses for this pattern.

If the goal is to decouple clients from the classes to instantiate then I do not see why it would be more complex than Factory Method: on the contrary it is much simpler (no parallel hierarchy). The clone method is in fact a misnomer is this case: you do not need to clone a prototype p but simply want a new object of the same (dynamic) type as p.MikalZiane13:05, 26 June 2006 (UTC)[reply]

Reasons to use clone

[edit]

"This pattern is used for example when the inherent cost of creating a new object in the standard way (e.g., using the 'new' keyword) is prohibitively expensive for a given application." - This sounds a bit misleading to me. The IMHO most common reason to use a clone() method instead of new is that you do not know the concrete type of the object, i.e. it is impossible to use new.

The article lists a non-software example of the prototype pattern. Not to seem too picky here, but couldn't we list some actual *software* cases where the design pattern is useful?—Precedingunsigned comment added by67.183.113.131 (talk)05:27, 17 August 2010 (UTC)[reply]

Language Specific Issues

[edit]

Java Code

[edit]

Java example question

[edit]

The introduction to the article says:

To implement the pattern, declare an abstract base class that specifies a pure virtual clone() method.

However, in the Java example the Cookie class is not declared abstract. Isn't this inconsistent with the introduction to the article?

210.23.150.138 (talk)22:45, 4 November 2009 (UTC)[reply]

C# issues

[edit]

C# XPathNavigator

[edit]

I think you have to go over the whole page again. It does not become clear when and why to use the clone method.

A good example is XPathNavigator in C#. Understand why they use the clone method here. If you understand this you understand the prototype pattern in a different way.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconXPathNavigatorOverDifferentStores.asp

Non language programming issues

[edit]

Structure - Class Diagram

[edit]

Sorry if I'm mistaken, but in the diagram, isn't the Client class implementing the Prototype superclass? (Due to the white triangle shape of the arrow).

Sorry also for the bad English.

Alpha (talk)12:02, 16 February 2008 (UTC)[reply]

Languages used for examples

[edit]

JavaScript

[edit]

Wouldn't it make sense to give an example in JavaScript, which supports much of this natively? Seehttp://steve-yegge.blogspot.com/2008/10/universal-design-pattern.htmlJon (talk)13:15, 13 February 2009 (UTC)[reply]

All non-Java examples now unavailable

[edit]

Earlier the article was edited to remove all but the not very appropriate Java example, with the claim that other examples were available in the external links. Later, the external links were removed as being link spam. So as a result of two quality improvement efforts, the quality went way down. Either non-spam links need to be added, or former links restored (I looked briefly and there was useful information/example code to be had without having to buy anything), or multiple language examples need to be included. I prefer the latter, as different languages have different features which dramatically affect what patterns are needed, how useful they are, etc. Saying "Wikipedia is not a programming manual" is kind of missing the point - different human languages cover the same page, because different humans think in different languages. The same goes for programming languages - if you want everyone reading the article to understand it, you either need a universal and probably not "real" programming language, or you need multiple real languages.Jodawi (talk)21:05, 16 July 2011 (UTC)[reply]

Self, Javascript

[edit]

Javascript is today's most popular programming language, and that makes it the flagship of prototypal inheritance patterns. Javascript gleaned the pattern from Self. So I corroborate the above points regarding language citations and examples. To include a sample implementation in Java is nearly non-sensical... to provide that sample *alone* is just ridiculous. To wit:http://twitter.com/#!/emjayess/status/92640484299780096emjayess (talk)17:48, 17 July 2011 (UTC)[reply]

UML class and sequence diagram

[edit]

I would like to share the followingUML diagrams I have published onDesign Patterns Open Online Learning. Your comments are welcomed!

A sample UML class and sequence diagram for the Prototype design pattern.

In the aboveUMLclass diagram, theClient class that requires aProduct object doesn't instantiate theProduct1 class directly.Instead, theClient refers to thePrototype interface for cloning an object.TheProduct1 class implements thePrototype interface by creating a copy of itself.
TheUMLsequence diagram shows the run-time interactions: TheClient object callsclone() on aprototype:Product1 object, which creates and returns a copy of itself (aproduct:Product1 object).
Vanderjoe (talk)13:14, 10 August 2017 (UTC)[reply]

Retrieved from "https://en.wikipedia.org/w/index.php?title=Talk:Prototype_pattern&oldid=1202812184"
Categories:

[8]ページ先頭

©2009-2025 Movatter.jp