用一个生活中的例子来说明设计原则

用生活中的例子来说明设计原则.你要不要来挑战一下

假设你开发了一个俄罗斯方块,如果你全部写在一个main方法里面,那他将非常难以维护,但是你可以一单招最基本的原则,将页面渲染和俄罗斯方块的逻辑分开,那么你就有一个

移植性很强的程序,你可以直接从pc移植到andori,成本很低,这就是单一职责带来的好处。

你会修电脑么,你会当你内存不足的时候更换内存条么,为什么各个不同厂商生产的cpu都可以被你使用,为什么电脑这么复杂的东西,你却可以进行简单的修理,而体积更小的收音机你就不行,

因为各个电脑厂商之间,都是通过接口的协定去生生产自己的设备,所以主要大家都遵守同一种接口约定生产的设备就可以混用,这就是面向接口编程,或者叫依赖倒转的好处

同样是电脑,假设我们得内存不足了,你想加一些内存,有多种方式,可能是直接在你的内容上把8G换成16G,但可能你发现你的电脑可以在插另外一条内存条,变成8+8的方式,为什么你可以加

因为厂商发现很多玩电脑的人都会有这种需求,于是就封装提供了扩展接口,而不是拆厂商的机器,在捣鼓成16G,这就是开闭原则的好处,你有这样的需求,那我就提前封装好,让你不需要拆电脑,就

可以很方面的扩展出你想要的内存。

原来这么多的原则已经被我们在生活中用的这么好,那为什么我们不在编程中,小小的移植一下,让我们的程序就算复杂也跟电脑一样简单,灵活,你也可以举出你想到的生活中的设计原则的应用。

原文地址:https://www.cnblogs.com/wangchaodong/p/11973761.html

时间: 11-30

用一个生活中的例子来说明设计原则的相关文章

通过一个生活中的案例场景,揭开并发包底层AQS的神秘面纱

本文导读 生活中案例场景介绍 联想到 AQS 到底是什么 AQS 的设计初衷 揭秘 AQS 底层实现 最后的总结 当你在学习某一个技能的时候,是否曾有过这样的感觉,就是同一个技能点学完了之后,过了一段时间,如果你没有任何总结,或者是不经常回顾,遗忘的速度是非常之快的. 忘记了之后,然后再重新学,因为已经间隔了一段时间,再次学习又当做了新的知识点来学.这种状态如此反复,浪费了相同的时间,但学习效果却收效甚微. 每当遇到这种情况,我们可以停下来,思考一下.对于某一个技术知识点理解起来不是那么好懂的时

iOS strong和weak联系生活中的例子

__weak 和 __strong 会出现在声明中 默认情况下,一个指针都会使用 __strong 属性,表明这是一个强引用.这意味着,只要引用存在,对象就不能被销毁.这是一种所期望的行为:当所有(强)引用都去除时,对象才能被收集和释放. 不过, 有时我们却希望禁用这种行为:一些集合类不应该增加其元素的引用,因为这会引起对象无法释放.在这种情况下,我们需要使用弱引用(不用担心,内置的集合类 就是这么干的),使用 __weak 关键字.NSHashTable 就是一个例子.当被引用的对象消失时,弱

用生活中的例子解释java中的接口

阅读本文前置条件 需要你掌握接口和抽象类的基本定义与区别. 小例子 抽象类 一说到公司的财务人员,大家都知道他的行政职能是什么. 这个职位就是抽象类.其中那套财政处理流程就是抽象类中具体的方法. 这个抽象类(职位)并不能直接处理财务问题,只是规定了在这个职位上的人应该遵循这套办事流程. 具体类 每个职员都有各自不同的特性,比如工资差异,回家的方式等. 这个人员就是具体的类,继承自这个财务职位,但是有各自差异的方法. 这个具体类(财务人员)是直接处理财务问题,是一个可以产生活动的类(人员).其中哪

Java中I/O库的设计原则

面试中遇到了此类题目,再次做个记录,以备只需! 1.在Java的I/O中有两个设计的结构:装饰模式和适配器模式 2.Java库中的对称性: (1)输出-输入对称:处理Byte流的InputStream和OutputStream:处理Char流的Reader和Writer. (2)byte-char对称:InputStream与Reader的子类分别负责Byte和Char的输入:OutputStream与Writer的子类分别负责Byte和Char流的输出,它们分别形成平行的等级结构. 3.模式应

从生活中细节看产品设计

已经有一段时间没有写博客,端午节好好休息了一下,在家休息的时候感觉自己对于生活中的一些细节特别的敏感,也许是自己的职业习惯,今天就把生活中一些细节和产品设计结合起来谈谈. 1.端午节前家中父母出去游玩,照了很多的照片,我端午回到父母家中,他们想把照片从相机中翻出来跟我分享,但不懂得如何去按相机后面的操作按钮. 首先我指着相机背后对应按钮一一问他们按钮上的图标代表什么意思吗?他们基本上都不知道.随后我交了他们如何翻照片的几个常用键 还好,通过按钮上的图标加深记忆,在告知他们一遍后他们就会使用了,这

【游戏开发】浅谈游戏开发中常见的设计原则

俗话说得好:“设计模式,常读常新~”.的确,每读一遍设计模式都会有些新的体会和收获.马三不才,才读了两遍设计模式(还有一遍是在学校学的),属于菜鸟级别的.这次准备把阅读设计模式的想法记录下来,并且把设计模式应用在Unity游戏开发上,做些小案例. 什么是设计模式 每一种模式都在说明某种一再出现的问题,并描述解决方法的核心,之后让你能够举一反三,从而解决数个类似的问题.每一种设计模式除了按照“面向对象的设计原则”加以分析设计之外,还满足:”解决一再出现的问题“.”解决问题的方案和问题核心的关键点“

一个简单的小例子让你明白c#中的委托-终于懂了!

模拟主持人发布一个问题,由多个嘉宾来回答这个问题. 分析:从需求中抽出Host (主持人) 类和Guests (嘉宾) 类. 作为问题的发布者,Host不知道问题如何解答.因此它只能发布这个事件,将事件委托给多个嘉宾去处理.因此在Host 类定义事件,在Guests类中定义事件的响应方法.通过多番委托的"+="将响应方法添加到事件列表中,最终 Host 类将触发这个事件.实现过程如下: 代码其实很少下面贴出来所有代码: QuestionArgs.cs view plaincopy to

生活中的MVC模式,一个吃货的理解。

以下是生活中对于MVC模式的领悟,虽然可笑,轻喷. 2015年 8月 26日 M  => Model       模型 我认为叫做模具更好的理解.批量加工生产具有相同特征的东西.        V   => View         显示. C   => Control    控制模型用的.就好比模具师傅吧,统筹调控所有的模具,最后把模具里所生产的产品组合起来,显示到View里面就成了我们的一个产品. 有趣的是,前几天去世界著名美食品牌连锁店——兰州拉面吃饭的时候.看到牛肉拉面.羊肉拉面

《解释的工具:生活中的经济学原理》读书笔记4

之前的五章,从人性本能.群体制度.供需关系.经济体系和信息问题这五个方面深入浅出地论述了作者对于在生活中.在经济活动中所易见的经济学的基本特点.起源.表现形式和发展变化的理解和认识.作者把这五章归为了第一篇,名叫“生活中的经济学概念”.而这一篇笔记要介绍的是全书的第二篇,名叫“社会关系有‘价签’”.我觉得,作者是要先通过剖析生活中的经济学现象提炼其中的经济学原理,让我们的认识深化一个层面,接触多一些的基本知识和思想,然后再回到生活中去,将之前的认识进一步引申,以深化一层对生活的认识.在这一篇中,