1. 编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序软件,具有更好
    1. 代码重用性 (即:相同功能的代码,不用多次编写)

    2. 可读性 (即:编程规范性, 便于其他程序员的阅读和理解)

    3. 可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维

    4. 可靠性(即:当我们增加新的功能后,对原来的功能没有影响)

    5. 使程序呈现高内聚,低耦合的特性