我这人特懒,从小到大都很讨厌文科(现在后悔了),写文章也很菜,虽然在女朋友鞭策下,比以前好了一点点。我个人崇拜老子的“道法自然”,它告诉我 们的就是凡事都有一个规律,你要“无违”,就是不要违反自然规律,一旦违反了,就会受到惩罚。第一次听到这个词的时候,就是因为这个词引起的,因为我不喜 欢学习《中国传统文化》,老逃课,然后挂了,就重修了。我们老师问我,为什么你们学计算机的人把这门课给挂了呢(一般老师都认为学习计算机的人聪明,因为 热门,考生分数高啊),我很生气的回答,“因为这门课没有用。”,老师急了,给我说“新加坡、日本治理国家和公司,用的理论就是孔子的思 想......”,后面的话没有记住,但是被老师的话震了一下,试着努力听这门课了。后来发现这门课挺有意思的,还朦朦胧胧听到老子的“道法自然”思想, 不过,我那会理解不了。初步体会到“道法自然”的含义是在我有女朋友之后。我犯错后,我女朋友肯定生气,她生气了肯定要我麻烦。后来,不快遇到多了,就慢 慢明白了,凡是做事违反规律的,必将受到处罚,于是我开始慢慢探索各种规律了。当然,包括编程之道。

接下来我将谈一下关于“设计模式”。这年头,是个程序员,要是不知道“设计模式”,绝对被人鄙视孤陋寡闻。一时间,“设计模式”高手就是编程高手 了。对于一些刚学习编程的人,他们都乐于谈论关于“设计模式”,他们会津津乐道某个设计模式,并为在某些代码上发现了一个“设计模式”的妙用而兴奋。我这 人不怎么喜爱设计模式,因为我懒,要学习设计模式,我还得去学习设计模式的背景,太费脑子了,而且关键是我用不着!当然,我在这里不是要反对“设计模式 ”,我也大体的把设计模式的书粗略过了一下,不过能说上来并应用的也就工厂、适配器、迭代器模式了,更不清楚这么多模式他们之间的各种关联性等等。

我在这里想说的就是,“设计模式”犹如精辟的剑招,每一种模式都能有效“克制敌人的某一个招数”。不过遗憾的是,我们很少遇到只拥有某一中招数的 敌人,我们经常遇到各种各样的敌人,他们使出各种各样的招数,即使我们完全学了所有设计模式,也难以招架。其实,大家在海阔天空谈论设计模式的时候,往往 容易忽略了设计模式的背景。在我看来,设计模式出现的原因是如果开发人员设计的程序比较僵硬,不自然,那么开发和维护就非常痛苦。由此,产生了面向对象的 设计原则。OOP最重要的原则就是SRP,即单一职责原则;其次是OCP原则,即开闭原则。你可以发现,基本上,每一个模式都很符合OOP的这些原则。设 计模式是在面向对象应用上面发展的必然结果,它追求程序变得更加”道法自然“,以避免开发人员受编程之苦。当你从面向对象学习起到开发很多项目之后,你也 会慢慢发现OOP原则和满足这些原则的设计模式的。如果一味的追求设计模式,而少了编程经验,根本无法体会面向对象的精髓,只能是硬着学一些招数而已。

因此,我给高谈“设计模式”的人的建议就是:(1)C#\C++\Java中的每一个关键字你们都掌握了吗? 如果没有的话,赶紧行动,告诉你自己Override、Virtual、Private/Protected/Public...等关键字的意义,当你能 够娴熟使用这些关键字的时候,你算是初步了解了面向对象的基本要素了。(2)对接口的把握程度,”多重继承“是接口最没有意义的用处了,如果你只知道这层 含义,需要多做项目。(3)循序渐进,多做实践。在实践同时,你可以学习设计模式。通过设计模式,你可以给自己制定目标,就是你以后也可以发明类似的设计 模式。(4)道法自然,如果程序设计的看上去很自然,那这些程序就是好程序了。

不要老谈“设计模式”相关推荐

  1. 结合电商项目谈设计模式

    结合电商项目谈设计模式 一.创建型(6种) 1.单例模式:创建一个仅能具有一个实例(仅能被实例化一次)的对象. 类框架:包括私有变量,私有构造方法和公共静态方法 实现方式: (1)懒汉式-线程不安全: ...

  2. 趣谈设计模式 | 模板方法模式(Template Method):封装不变部分,扩展可变部分

    文章目录 案例:房屋建造 模板方法模式 模板方法模式与策略模式 总结 完整代码与文档 这个设计模式过于简单,所以不是很好举例- 案例:房屋建造 假设我们是建筑公司中的规划者,负责设定建筑方案,在初期我 ...

  3. 趣谈设计模式 | 代理模式(Proxy):利用代理来控制对象的访问

    文章目录 案例:房屋中介 代理模式 代理模式与装饰器模式 代理模式的应用 远程代理 虚拟代理 安全代理 智能引用代理 写时拷贝代理 总结 完整代码与文档 由于代理模式相较于前面的其他设计模式来说更加简 ...

  4. 趣谈设计模式 | 策略模式(Strategy):你还在使用冗长的if-else吗?

    文章目录 案例:指挥官AI 策略模式 配合工厂模式 总结 完整代码与文档 案例:指挥官AI 案例可能不符合实际逻辑,仅用于表述设计模式的思想,勿介意 假设我们开发了一款类似全面战争的即时战略游戏,为了 ...

  5. 子慕谈设计模式系列(二)——设计模式六大原则

    六大原则 单一职责原则 里氏替换原则 依赖倒置原则 接口隔离原则 迪米特法则 开闭原则 前言 设计模式不容易用文字描述清楚,而过多的代码,看起来也让人摸不到头脑,加上词语或者文字描述的抽象感,很容易让 ...

  6. 趣谈设计模式 | 状态模式(State):如何实现游戏中的状态切换?

    文章目录 案例:马里奥积分竞赛 有限状态机 分支逻辑法 查表法 状态模式 状态模式与策略模式 总结 完整代码与文档 案例:马里奥积分竞赛 喜欢马里奥的小伙伴们都应该知道,前不久马里奥为了庆祝35周年, ...

  7. 从王者荣耀谈设计模式​

    软件开发中涉及到的设计模式很多,这里重点讨论工作中常见的一些设计模式,围绕王者荣耀中的场景进行展开. 1:策略模式 策略模式demo <?php //1:抽象策略接口:王者荣耀 abstract ...

  8. 从王者荣耀谈设计模式

    软件开发中涉及到的设计模式很多,这里重点讨论工作中常见的一些设计模式,围绕王者荣耀中的场景进行展开. 1:策略模式 策略模式demo <?php //1:抽象策略接口:王者荣耀 abstract ...

  9. .NET简谈设计模式之(策略模式)

    策略模式在我们日常开发中经常被用到,这篇文章不是策略模式的深入讨论和学术研究,只是让初学者能有个基本的了解. 什么叫策略:1. 可以实现目标的方案集合:2. 根据形势发展而制定的行动方针和斗争方法:3 ...

  10. 【大话设计模式】——浅谈设计模式基础

    初学设计模式给我最大的感受是:人类真是伟大啊!单单是设计模式的基础课程就让我感受到了强烈的生活气息. 个人感觉<大话设计模式>这本书写的真好.让貌似非常晦涩难懂的设计模式变的生活化.趣味化 ...

最新文章

  1. mybatis查询如何返回ListMap类型数据
  2. 【深度学习】翻译:60分钟入门PyTorch(四)——训练一个分类器
  3. Hadoop hdfs 使用流来上传文件代码示例
  4. 46. Permutations
  5. 2022年中国AI芯片行业深度研究
  6. 浏览器判断及客户端跳转,绕开微信对某宝限制
  7. 微信公众平台回复音乐
  8. c# winform 设置winform进入窗口后在文本框里的默认焦点
  9. Kotlin — 适用于数据科学
  10. 关于winpcap发包速度低的问题
  11. python 解压zip ,rar 文件及编译错误的解决方法
  12. AI智能合同审阅系统
  13. 卡西欧电子词典EV-SP3900(英汉日版)
  14. linux 360云盘下载文件夹里,360安全云盘Linux版图文使用说明
  15. 您选择的不是数据库安装目录_您不是您的数据,但您的数据仍然是您
  16. 信创引领丨呼叫中心加速适配国产化
  17. 历代iphone详细对比
  18. swagger 怎么显示enum_dotnet core swagger filter 隐藏接口和显示枚举描述
  19. WPF 控件【U】UserControl(一) UserControl、ContentControl、Page的区别,及它们的使用方法
  20. norflash的基本操作2

热门文章

  1. Python 双y轴绘制
  2. java线程卖票_Java通过卖票理解多线程
  3. Linux关闭占用端口的进程
  4. matlab 通信工程,MATLAB 通信工程仿真
  5. 树莓派4烧录系统后黑屏_原创试用 | 树莓派3B+测评(二)ubuntu系统烧录+彩虹屏问题解决...
  6. 解构流存储 — Pravega,与 Flink 构建端到端的大数据流水处理线
  7. python中布尔值是什么意思_python中的布尔值是什么
  8. linux 终端 收取邮件,linux mail 命令 (收发邮件)
  9. combox控件触发事件_Simulink(三角函数和代数约束模块)+Matlabgui(Gui实例)+Stateflow数据与事件(三)...
  10. Python让繁琐工作自动化——chapter17 操作图像