设计模式是人们在对同类型软件工程设计问题所总结出来的一些经验.模式不是代码,而是某类问题的通用设计解决方案.
设计模式的本质目的是使软件工程在维护性,扩展性,变化性,复杂度方面都昌最底的
面向对象的基本的特性是设计模式的基础原则,设计模式是在这个基础上面的方法
思考:
为什么javaIO流类的设计中把BufferedReader设计成:
new BufferedReader(new FileReader(“c:\text.txt”));
而不是设计成:
BufferedReader extends FileReader;
然后 new BufferedReader(“c:\text.txt”);
原因:
因为我们的IO流各类有很我,基类有很多种,扩展的子类也有很多种.这种情况下如果用扩展或者继承的方式就会变成N对N的关系.就是说有N个超类就会有N个子类.复杂度就会变成N*N的关系.
所以:
就是用了装饰者模式,复杂度就会变的简单很多,复杂度就会变成N的关系.