Hallo zusammen, ich bin Lao Tian, Heute werde ich Designmuster 原型模式
mit euch teilen. Verwenden Sie geeignete Lebensgeschichten und reale Projektszenarien, um über das Entwurfsmuster zu sprechen, und fassen Sie das Entwurfsmuster schließlich in einem Satz zusammen.
Ich erinnere mich noch daran, als ich in meinem Abschlussjahr auf Jobsuche war, zufällig eine relativ schöne Lebenslaufvorlage für Programmierer aus dem Internet gefunden habe und dann die ganze Klasse angefangen hat zu kopieren ihre Lebensläufe wie verrückt (U-Disk). Gleichzeitig gab es auch einen Witz, als mehrere Studenten ihre früheren Lebensläufe kopierten, ohne den Inhalt oder ihren Namen zu ändern. Später sollte jeder das Ergebnis erraten können. Alle machten ein Praktikum, und einige von ihnen waren noch auf der Suche nach einem Job. Feedback vom Interviewer im Unternehmen und anderen Klassenkameraden später: Ich habe mehrere Lebensläufe erhalten, die genau gleich waren. Als ich zurückkam, wussten alle, wo das Problem lag, nachdem wir darüber gesprochen hatten. Ich gab zu, dass ich es kopiert und eingereicht hatte ohne es überhaupt zu ändern. Schade.
Unterteilen Sie Lebenslaufkopien in zwei Arten:
Der Prototyp-Modus verfügt über die folgenden Nutzungsszenarien:
Die Klasseninitialisierung verbraucht mehr Ressourcen Ein von new generiertes Objekt erfordert einen sehr langwierigen Prozess (Datenvorbereitung, Zugriffsberechtigungen usw.) Der Konstruktor ist komplizierter Wenn eine große Anzahl von Objekte werden innerhalb des Schleifenkörpers generiert Im Frühjahr wird häufig das Prototypmuster verwendet, zum Beispiel: scope='prototype'
scope='prototype'
我们可以将一些getter和setter之类封装成一个工厂方法,然后对于使用的人来说,调用方法就可以了,不需要知道里面的getter和setter是怎么处理的。我们也可以使用
JDK
提供的实现Cloneable
接口,实现快速复制。创建对象的四种方式:
new、反射、克隆、序列化
实际案例
大家是否有遇到过这种常见,就是项目中规定,不能把与数据库表映射的entity类返回给前端,所以通常返回给前端的有各种O,比如:XxxVO、XxxBO、XxxDTO...
这时候就会出现下面的场景,大家也想已经猜到了。
下面是与数据库表映射的
UserEntity
Wir können einige Getter und Setter in eine Factory-Methode kapseln und dann für den Benutzer einfach die Methode aufrufen, Es ist nicht erforderlich, zu wissen, wie die darin enthaltenen Getter und Setter gehandhabt werden. Wir können auch
Implementierung bereitgestellt durch JDK
Vier Möglichkeiten zum Erstellen von Objekten:
new,flection, Clone, serialize🎜
Tatsächlicher Fall
🎜Jemand ist mir darauf begegnet Häufiges Problem. Im Projekt ist festgelegt, dass die der Datenbanktabelle zugeordnete Entitätsklasse nicht an das Frontend zurückgegeben werden kann. Daher werden normalerweise verschiedene O an das Frontend zurückgegeben, z. B.: XxxVO, XxxBO, XxxDTO ... 🎜 🎜Zu diesem Zeitpunkt erscheint die folgende Szene, und jeder hat es vielleicht erraten. 🎜🎜Das Folgende ist die Zuordnung zur Datenbanktabelle
Das obige ist der detaillierte Inhalt vonMaster-Prototyp-Modus in fünf Minuten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!