A software design pattern is a general, reusable solution to common design problems in software engineering. It is not a finished design. It is a description or template.
Software design pattern (Wikipedia)