Software design patterns are for solving specific types of problems encountered in software engineering. And it seems that they have been proved successful in software engineering practice. However, what are the theoretical foundations of these design patterns? In another word, what are the more general rules under them?
I notice that some people are researching the foundations of design patterns. Some mathematical structures are being invented for critically thinking about software design patterns. I'm curious to know whether someone ever thought about this problem or did something on this topic?
I notice that some people are researching the foundations of design patterns. Some mathematical structures are being invented for critically thinking about software design patterns. I'm curious to know whether someone ever thought about this problem or did something on this topic?