The package constructor privatizes monomorphic mode; class preson{ private static preson newperson = new preson(); private String name = "" ; private preson() { // package constructor this .name = "Wang Wu" ; } public static preson getPreson() { return newperson; } public String getName() { return this.name; } public void setName(String n) { this.name = n; } } public class monomorphic pattern { public static void main(String[] args) { // TODO Auto-generated method stub preson r1 = preson.getPreson(); preson r2 = preson.getPreson (); preson r3 = preson.getPreson (); r2.setName( "Zhang San" ); System.out.println(r3.getName()); // Output Zhang San } }
The monomorphic design pattern should be used where one class does not want to produce multiple objects.
Multiple stack memories point to the same heap memory.