1.简介 在日常开发中,某些对象的状态如果发生改变,对应的行为也将发生改变,那么如何在运行时根据对象的状态动态的改变对象的行为,同时不产生紧耦合关系(即使用if else或者swith所带来的紧耦合关系).即对扩展开放,对修改关闭一开闭原则. 2.案例 假设用户提出了一个需求,有三类文档对象,他们都由Read.Update.Write的功能,且分为只读文档.只改文档.只写文档,且在编写代码时,他们的RUW(R-Read)功能各不相同,即每一类的状态文档,在运行时,他们的Read.Write.Up