【设计模式】-写在前面
轮子哥说过,学习设计模式要越复杂越能体现出设计模式的强大。
但若是初次了解设计模式,还是以简单的方式进行吧!
计划第一篇将23种设计模式以最简单明了的方式描述出来,好从心底有个大概的了解,了解到每一种模式大概是什么东西,大概用在什么地方,大概的样式是什么样的。
之后会为每一种设计模式单开出一篇,进行详细的介绍,优缺点,进阶用法,等等。
看我个人能力吧,我觉得我会把开发过程中得到的想法和经验在这里面完善出来的。
设计原则
- 单一职责原则
- 里氏替换原则
所有引用基类的地方必须能透明地使用其子类的对象。通俗点讲,只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常,使用者可能根本就不需要知道是父类还是子类。但是,反过来就不行了,有子类出现的地方,父类未必就能适应。
- 子类必须完全实现父类的方法
- 子类可以有自己的个性
- 覆盖或实现父类的方法时输入参数可以被放大
例如:父类要求参数为ArrayList,子类参数可以放大为List - 覆写或实现父类的方法时输出结果可以被缩小
- 依赖倒置原则
- 开闭原则
软件实体应该对扩展开放,对修改关闭。
我是小白。
我是小白。
我是小白。
转载于:https://www.cnblogs.com/sdlszjb/p/8570238.html
【设计模式】-写在前面相关推荐
- java漂亮的模板设计代码_JAVA模板方法设计模式——Java设计模式,写漂亮的代码——...
Java设计模式,写漂亮的代码 ----模板方法设计模式 简介: 模板方法设计模式是Java设计模式中很简单.应用非常广泛的的一种设计模式,该模式体现了编程的抽象思想(抽象是所有子类的共性封装), 仅 ...
- 浅谈设计模式 | 先有鸡还是先有蛋?先有代码后有设计模式还是先有设计模式再写代码?
前言 一.面向对象的三大特性 1. 封装 2.继承 3.多态 二.面向对象七个设计原则 1.单一职责原则 2.开放封闭原则 3.里氏替换原则 4.接口隔离原则 5.依赖倒置原则 6.合成复用原则 7. ...
- PHP面向对象设计模式
PHP设计模式--概述 常见的面向对象设计模式大约有23种,但是自从接触PHP后,渐渐发现常见的设计模式好像少了很多,网络上的资料也比较少,身边的PHP同事们有的甚至没有听说过设计模式,这也有可能是P ...
- 红橙Darren视频笔记 builder设计模式 navigationbar 导航栏第二版
1.builder设计模式简介 builder的实际应用的典型案例有AlertDialog和OKHttp 例如 // AlertDialogAlertDialog alertDialog = new ...
- Javascript设计模式之——代理模式
最近在读<javascript设计模式与开发实践>,在这里把文中的各种设计模式写出来,以便加深记忆,也可以分享给初学者.如果你不了解设计模式,那么强烈推荐你阅读一下这本书,相信它可以颠覆你 ...
- 面向对象设计模式纵横谈:Prototype 原型模式(笔记记录)
有一段时间没写东西了,今天继续把没写完的设计模式写完,今天这堂课是创建型设计模式的最后一堂课,原型设计模式,它同样也是解决了对象在创建的过程中的解耦合的情况,面对变化使代码更稳定,更准确的说是使 ...
- .NET中的设计模式——一步步发现装饰模式
前言 过去我的一个朋友常说,学习任何编程语言最困难的部分是运行"Hello World",之后一切都很容易.多年以后,我才意识到他说的很对.学习设计模式的基本目标是要用它,尤其是帮 ...
- PHP设计模式——六大原则
声明:本系列博客参考资料<大话设计模式>,作者程杰. 一般认为遵从以下六大原则的代码是易扩展可复用的代码: 这六大原则任何面向对象的语言都应该遵守的,要想让你的代码易扩展高服用就尽量去满足 ...
- C# 设计模式:创建型
开个坑,接下来写完设计模式,其实这个东西一直很重要,但是自己却不重视,直到在很多地方吃了亏才想起来,我之前看起来设计模式有点"无所谓",好像代码知道具体的技术和知识点就可以包打天下 ...
- Android与MVC设计模式
Android与MVC设计模式 写在前面,之前做过一段时间移动开发,后来因为工作原因搁浅了,最新重新拿起Android权威编程指南学习,顺道做个学习笔记. 首先呢,我想说无论是计算机科班出身还是培训班 ...
最新文章
- 外部样式表声明的样式并不会进入style对象
- 配置BGP本地优先级
- 【数据结构与算法】之深入解析“路径交叉”的求解思路与算法示例
- 学go语言能做什么工作?
- Executor源码解读
- jfinal-swagger让你的应用接口更加简单
- .NET C#研发的授权工具
- Ubuntu 通过apt安装VSCode
- Design Pattern: Adapter 模式 - Object Adapter
- snipaste安装和使用_snipaste替代品 amp; linux截图解决方案-截图、贴图工具Flameshot...
- atom编辑器 apm指令配置代理
- ArcEngine 相关-转载
- 50句形容美人的绝佳诗句,只看一眼,惊艳千年
- 生信技能树linux虚拟机,2019-08-21生信技能树Linux20题
- 东芝2303am维护清零_东芝打印机2303A怎样清零?
- 站长说说之seo三大标签
- 【最佳实践】行云管家数据库运维审计解决方案
- 我做过的最好的$ 4.90
- 【2016浴雨沐风】(第一篇)
- 如何选择智能车牌识别摄像机
热门文章
- java里css查找快捷键_CSS入门2—元素快捷键
- java解析getresponsebodyasstring_java读取网站内容的两种方法是什么呢?
- macOs下全局安装npm包的设置问题
- 2018 Multi-University Training Contest 7 - Age of Moyu
- BOM--location对象、history对象
- Hadoop(十五)MapReduce程序实例
- [BZOJ] 1634: [Usaco2007 Jan]Protecting the Flowers 护花
- Oracle的登陆问题和初级学习增删改查(省略安装和卸载)
- device not ready cuda
- 游戏框架View以及简单的运用