A better understanding of software design patterns, symmetries, and broken symmetries is provided based on the Coplien and Zhao postulates. Studies have found that symmetry is closely related to isomorphism and various programming features are explained using symmetry either in general concept of invariance or in its specific form of geometric transformation. Symmetry breaking is known as partial loss of symmetry and has been recognized as a fundamental process of pattern formation. Object-oriented language features create symmetry by enforcing some invariance to its instances, while the type systems are inherently symmetric. Too much symmetry is found to create inflexible and rigid programs such that language designers introduce language features to break the rigid design. Class symmetry breaking plays a major role in the formation of design patterns.
机构:
Univ Pisa, Dept Phys E Fermi, Largo Pontecorvo 3,Ed C, I-56127 Pisa, Italy
INFN, Sez Pisa, Largo Pontecorvo 3,Ed C, I-56127 Pisa, ItalyUniv Pisa, Dept Phys E Fermi, Largo Pontecorvo 3,Ed C, I-56127 Pisa, Italy
Bolognesi, Stefano
论文数: 引用数:
h-index:
机构:
Konishi, Kenichi
Shifman, Mikhail
论文数: 0引用数: 0
h-index: 0
机构:
Univ Minnesota, William I Fine Theoret Phys Inst, Minneapolis, MN 55455 USA
Univ Calif Santa Barbara, Kavli Inst Theoret Phys, Santa Barbara, CA 93106 USAUniv Pisa, Dept Phys E Fermi, Largo Pontecorvo 3,Ed C, I-56127 Pisa, Italy