第三周学习总结
怎样的系统算一个好的系统?如何设计具有扩展、可维护、复用的系统,它能最大限度的应对产品经理不断变化的需求?答案就是:设计模式。
好的设计和代码可以拥抱变化,不管程序代码经过多个版本的迭代后仍然代码清晰、灵活和系统稳定,这也是我们期望的理想状况。
设计模式有哪些呢?
设计模式分类:创建型模式、结构型模式、行为型模式。
创建型模式是指这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用新的运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。比如球类,当参数为足球就创建足球这个球类,当参数为篮球时就创建篮球这个球类。
创建型模式包括:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。比如动态的给一些已有的对象添加一些额外的职责。
结构型模式包括:适配器模式、桥接模式、过滤器模式、组合模式、装饰器模式 、外观模式、享元模式、代理模式
行为型模式是对象直接如何通信或对象之间的责任分配。比如动态的指定一组对象处理请求,动态的让一个对象在许多行为中选择一个行为。
行为型模式包括:责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、空对象模式、策略模式、模版模式、访问者模式
那么我们如何用好设计模式呢?
首先,设计模式是为了封装变化,让各个模块可以独立变化,精准地使用设计模式的前提是你能够精准的预测需求变更的走向。但是当然需求变化往往不能我们所能控制和预测的。
其次,要避免过度设计,这就要求我们深入的理解你的程序所在的领域的知识,了解用户使用我们的软件是为了解决什么问题,这样我们预测用户的需求才会比以前更加准确,从而避免了使用设计模式来封装一些根本不会发生的变化,也避免了忽视了未来会发生的变化从而发现使用的模式根本不能适应需求的新走向。
版权声明: 本文为 InfoQ 作者【洋】的原创文章。
原文链接:【http://xie.infoq.cn/article/329ec6e7425b38b97d5acf7a1】。文章转载请联系作者。
评论