设计模式总结 朱雀 2022-03-22 12:46 277阅读 0赞 从18年10月份开始学习设计模式,到19年1月底才看完,这篇博文主要总结这个过程中我的收获和一些思考。 **我的收获** * 从刚开始接触Java就听说过设计模式,但是由于自己的能力有限,又觉得设计模式是一个很高大上的东西,所以一直都没有碰,这次有幸系统的学习了一遍设计模式。 * 在开发之前开始思考如何设计更合理了。可能在这之前并没有想过太多的设计相关的东西,只是想着快速实现并且不出现bug,并没有想着怎样设计才是更合理一点。 * 开始考虑系统的可扩展性了,毕竟总会改变。 * 在遇到问题后开始想有那个设计模式会适用这个场景。 * 对面向对象有了更深一步的了解。 **面向对象的三大特性** * `封装(Encapsulation)` 隐藏对象的具体实现细节,通过共有方法暴露对象的功能。内部结构可以自由修改,同时可对成员进行更加精确的控制 (比如在setter方法中加值合法判断) * `继承(Inheritance)` 使用已经存在的类作为基础类(父类),在此基础上建立新类(子类),子类既可复用父类的功能,也能进行扩展,从而实现代码复用。 另外Java是单继承的,可以通过接口和内部类实现多继承。但是有几点需要注意一下: * 子类拥有父类非private的属性与方法 * 构造方法只能调用,不能实现,子类默认调用父类的无参构造方法, 如果父类没有无参的构造方法,需要使用super显式调用! * 慎用继承,要考虑是否需要从子类向父类进行向上转型!(转型要instanceof) * `多态(Polymorphism)` 一个类实例的相同方法在不同的情形下有不同的表现形式。多态分为两种:方法重载和重写(主要描述父类和子类之前的多态)。 **类与类间的关系** * 继承,实现,依赖,关联,聚合,组合 * 类的相关程度:继承 < 实现 < 依赖 < 关联 < 聚合 < 组合 * 依次的UML类图标记 * 继承 ![在这里插入图片描述][20190128142710200.png] * 实现 ![在这里插入图片描述][20190128142718189.png] * 依赖 ![在这里插入图片描述][2019012814272875.png] * 关联 ![在这里插入图片描述][20190128142741299.png] * 聚合 ![在这里插入图片描述][20190128142755925.png] * 组合 ![在这里插入图片描述][20190128142803824.png] **[设计模式的六大原则][Link 1]** * 单一职责原则 每一个类应该专注于做一件事情。 即:高内聚,低耦合。 * 里氏替换原则 在任何父类出现的地方都可以用它的子类来替代。 * 依赖倒置原则 要依赖于抽象,不要依赖于具体实现。 * 接口隔离原则 应当为客户端提供尽可能小的单独的接口,而不是提供大的总的接口。 * 迪米特法则 一个对象应当尽量少地与其他对象之间发生相互作用,使得系统功能模块相对独立。 * 开闭原则 一个对象对扩展开放,对修改关闭。即:对类的改动是通过增加代码进行的,而不是修改现有代码。 **设计模式逐一攻破** * [设计模式专栏][Link 2] * [github][] 永远不要对学习失去兴趣。 [20190128142710200.png]: /images/20220322/a439bec76d7b471e9cd8f1aa81504ced.png [20190128142718189.png]: /images/20220322/5b88d1d56dbc43d98bea657a728cd700.png [2019012814272875.png]: /images/20220322/96f1c04ac91d41e4bb0f24e1b919aed1.png [20190128142741299.png]: /images/20220322/8b9b5cf74df344a2a07b8626ab5b6004.png [20190128142755925.png]: /images/20220322/204d4a0caaf14ca48c677f3aa8401d92.png [20190128142803824.png]: /images/20220322/7c232bda39d54db5984edce373dd221b.png [Link 1]: https://blog.csdn.net/wangchengming1/article/details/83090643 [Link 2]: https://blog.csdn.net/wangchengming1/column/info/28877 [github]: https://github.com/BazookaW/DesignPattern
相关 设计模式总结 设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接 超、凢脫俗/ 2022年09月23日 05:52/ 0 赞/ 23 阅读
相关 设计模式总结 1.简单工厂模式:由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现 2.策略模式:定义一系列的 旧城等待,/ 2022年08月27日 02:25/ 0 赞/ 178 阅读
相关 设计模式总结 2016-05-08 菜鸟教程 > 更详细的设计模式教程,请点击文末的“阅读原文”。 > > 设计模式教程:http://m.runoob.com/design-patt 不念不忘少年蓝@/ 2022年08月22日 04:58/ 0 赞/ 180 阅读
相关 设计模式总结 终于完完整整的把设计模式又看了一遍,这几天一直计划要写一篇总结,无奈总被这样或那样的事情打断…再消化一下,回头来把欠的债给还了。 设计模式的分类 总体来说设计模式分为三 £神魔★判官ぃ/ 2022年07月26日 01:45/ 0 赞/ 185 阅读
相关 设计模式总结 本文转自 ——[树上月][Link 1]http://www.cnblogs.com/chenssy/p/3357683.html 从七月份开始一直到九月底才看完设计模式 ゝ一世哀愁。/ 2022年07月15日 09:18/ 0 赞/ 217 阅读
相关 设计模式总结 设计模式 什么是设计模式 什么时候使用设计模式 设计模式六大原则 常见设计模式 什么是设计模式 设计模式是软件开发人员在软件开发过程中面临 青旅半醒/ 2022年05月31日 04:50/ 0 赞/ 197 阅读
相关 设计模式总结 建造型模式: 简单工厂:常用,通过enum查找对象,调用其方法使用; 抽象工厂:未曾使用,多个工厂被封装在抽象工厂,挺复杂的; 单例:管理常用 建造者:需要生成的对象具 Dear 丶/ 2022年05月26日 03:19/ 0 赞/ 236 阅读
相关 设计模式总结 从七月份开始一直到九月底才看完设计模式,在这个过程中我不敢说我已经掌握了那本书里面的内容,或者说1/5,没能力说也没有资格说。但是结果不重要,重要的是这个过程我的收获!主要包括 末蓝、/ 2022年04月14日 06:15/ 0 赞/ 232 阅读
相关 设计模式总结 从18年10月份开始学习设计模式,到19年1月底才看完,这篇博文主要总结这个过程中我的收获和一些思考。 我的收获 从刚开始接触Java就听说过设计模式,但是由于自己的 朱雀/ 2022年03月22日 12:46/ 0 赞/ 278 阅读
相关 设计模式总结 首先,可以先参考 文档: https://design-patterns.readthedocs.io/zh\_CN/latest/index.html 创建型: 川长思鸟来/ 2021年12月22日 20:55/ 0 赞/ 262 阅读
还没有评论,来说两句吧...