---
layout: post
title: 设计模式 我为什么学习设计模式
tags:
- Design_Patterns_head
categories:
- Design_Patterns
description: 首先我想谈谈我对编程的理解 在我读大学之前,对于编程我是没概念的,我知道他是一堆计算机指令 ,一堆正常人都看不懂懂得天书 ,也对他们表示钦佩 .现在 这么久了,我对编程,对计算机世界有了自己的一点点理解​---

设计模式 我为什么学习设计模式

我对编程的理解

happy Birthday! happy Birthday! 继续努力 继续努力 嘻嘻

首先我想谈谈我对编程的理解 在我读大学之前,对于编程我是没概念的,我知道他是一堆计算机指令 ,一堆正常人都看不懂懂得天书 ,也对他们表示钦佩 .现在 这么久了,我对编程,对计算机世界有了自己的一点点理解!

1. 计算机世界

渐渐的学习了一些基础知识 数据结构哦 算法 javase……我渐渐的发现 他们都来源于我们的生活——我们人类的世界 我感觉计算机世界 ==就是我们现实生活的映射== 生活处处有编程 所有计算机的问题 我觉得都可以在现实生活中找到最合理最自然的解决方法 这是人类几万年积累的知识库

2. 我的第一个有意思的程序

  • 上了大学 第一个半学期学习了javase的基础知识, 好奇心下 我决定自己写个toy code (玩具代码),我想自己实现一个txt文本的加密功能-----也是那会我能想到,而且我能实现的功能 于是我开始思考? 文本加密 就是将明文弄成密文就可以实现了 用流一个一个读汉字然后一个一个操作........但是加密算法怎么实现?? 我知道java 的char类型和int类型可以互相转换,我只要将一个一个汉字转换成int类型 然后数值加一 然后在转换成char 这样就实现了加密 解密的时候只要减一就可以了

  • 代码码完之后 功能可以实现了 ,但是我也发现了他的问题 就是我加密后 任何人都可以解密 我只能加密多次 但是我加密3次 他只需要解密三次就可以了 这是个问题 需要解决 于是我又想方法 都加一肯定是不行的 那我让让他随机加减数字 记录这些数字 然后生成一个密钥文件 解密的时候 用这个密钥文件解密就可以了

  • 虽然我觉得这个很完美 但是还是有些很严重的问题,如果有个家伙恶意的破坏我的文件 他把加密文件多次加密 删除密钥 或者修改密文...........这样想的话问题很多了 需求总是在不断变化 改代码将成为日常.........

3. 代码帮我挣更多钱

  • 大二暑假开始兼职 找到一个很机械的工作 帮人扫描pdf 就是帮房产局扫描各种资料到电脑,每天的话可以挣到100多块呢 但是我 作为一个学过编程基础的人 我觉得这一系列鼠标操作让人厌烦

  • 首先 我需要对这些不同类型的资料创建对应的文件夹 然后修改文件夹的名字 然后把扫描的文件放进文件夹...........我觉得可以通过io简化这个操作 于是我开始挑灯夜战 第一天晚上就弄完了一个java程序 他就长这样:

    [image-20190428132430447](/Users/apple/Library/Application Support/typora-user-images/image-

.png)

排版有些问题 因为以前是win8 现在是OS X

这样我只需要创建一个文件夹用来放扫描文件 然后创建客户文件夹 选择pdf的类别 点击移动 他就会自己创建对应的文件夹 并且移动pdf文件 显示操作信息(后来我知道有个东西叫日志)

就这样我的效率提高了很多因为最费时间的创建文件夹的工作被简化了! 主管也知道了 决定"收购"我的"产品" 而且给我加工资 ! 我第一次体会到知识就是力量 知识就是金钱 …..

但是好景不长 工作并不是一成不变的.....今天多了个出让说明的分类 过几天又多了个身份证明 下周有多了一个规划通知......每次我都要更改我的代码 通篇看一遍我写了什么鬼东西,东西一多 整个程序变得臃肿 就像一坨意大利面一样胡乱不堪.....

4. 总结

  • 从那一天开始 我体会到了 程序并不是只是为了实现功能 后期的需求变更 代码修改 维护 反而比开发花更多时间 所以好的程序设计非常重要 不然维护将是噩梦
  • 就我上面的程序来说 我觉得他就像一台mac笔记本 出了一点问题 我需要全面了解mac的构造 什么地方干什么的 什么地方能拆 整个产品集成度很高 而且下次维修记忆力不好的话 这些步骤又需要来一次!
  • 反而 如果我的程序想一台小轿车! 车胎爆了车子不能走了 都不用动脑子 换个轮胎就可以了! 我不需要了解整个汽车各个系统的功能 我只需要关心他的一部分——车胎那一部分! 后来我知道一个词来描述联系的紧密程度——==耦合==

5. 体会

程序必须要可维护 而且各个系统应该要解耦合 这个在敲代码之前就要设计好 不然出现问题需要重头再来 我们必须要为 ==低耦合,高内聚== 而努力.

所以我接触到了设计模式 这个大家都知道的设计 程序开发和程序设计者通用的知识 知道了"四人帮" 拥有了一本很优秀的书——

希望在以后的开发学习中——设计模式 这些前任程序员遭遇过的问题 以及他们的总结的解决方法和设计思想 能让我少走些弯路 更好的理解设计思想 也不用大费周章的和同事解释我的设计, 直接简单的一句话——我的这个模块使用了工厂模式 !

转载于:https://www.cnblogs.com/Tamako/p/10859663.html

我为什么学习设计模式相关推荐

  1. 阿里大佬告诉我,想学习设计模式,得先学好这些硬核技能

    写在前面 我们继续学习架构师技能,今天是本系列的第二篇,希望大家持续关注. 可能你不是科班出生,甚至大学都没念,没背景没关系.我们只要每天进步一点点,一个月.两个月.半年.一年....... 规划性的 ...

  2. 小菜学习设计模式(五)—控制反转(Ioc)

    写在前面 设计模式目录: 小菜学习设计模式(一)-模板方法(Template)模式 小菜学习设计模式(二)-单例(Singleton)模式 小菜学习设计模式(三)-工厂方法(Factory Metho ...

  3. 1.4 如何学习设计模式

    在了解了设计模式的历史和分类后,应该如何学习设计模式呢?在学习设计模式之前,读者一定要树立一种意识,那就是:设计模式并不只是一种方法和技术,它更是一种思想.一个方法论.它和具体的语言没有关系,学习设计 ...

  4. 跟着ZHONGHuan学习设计模式--桥接模式

    转载请注明出处! ! !http://blog.csdn.net/zhonghuan1992 全部配套代码均在github上:https://github.com/ZHONGHuanGit/Desig ...

  5. 我学习设计模式的一些所想所得

    设计模式一直饱受争议,很多人对设计模式推崇备至,但也有很多人认为设计模式误导了编程者,见(<解密"设计模式">). 我也只是一个普通的编程人员,这里只能谈一谈我在学习设 ...

  6. [转自左潇龙的博客]设计模式大杂烩(24种设计模式的总结以及学习设计模式的几点建议)...

    原文地址:    https://www.cnblogs.com/zuoxiaolong/p/pattern26.html 作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本 ...

  7. 设计模式总结篇(为什么要学习设计模式,学习设计模式的好处)

    版权声明:转载必须注明本文转自晓_晨的博客:http://blog.csdn.net/niunai112 在学习完设计模式后,LZ想告诉大家: 对于一名工作不久的程序员来说,学习设计模式是非常有必要的 ...

  8. 【学习设计模式6】单枪匹马只身一人——单例模式

    单例模式是结构最简单的设计模式之一,也是最普遍应用的设计模式之一. 简单但是重要,唯一所以特别. 上篇: [学习设计模式5]创建型模式三结义-抽象工厂模式_Aiky哇-CSDN博客抽象工厂模式是所有形 ...

  9. 零基础学习设计模式之装饰器模式(配套视频)

    零基础学习设计模式之装饰器模式 定义 在不改变目标结构的情况下,动态的给对象增加功能 举例 如房子装修.相片加相框等,都是装饰器模式. 基本组件 抽象构件(Component)角色:定义一个抽象接口以 ...

  10. 浅谈自己学习设计模式的感受

    对于开发工作者的世界,不管是开发讨论会上还是学习交流会上,更或者面试的时候,当提及设计模式,都会或多或少的让别人高看你一眼.为什么它会有这么强大的魅力呢! 有些人说,主要是因为设计模式太抽象,不好理解 ...

最新文章

  1. ASP.NET控件Repeater遍历
  2. 分布式缓存的面试题3
  3. DeepLearning——CNN
  4. 第十二周项目一-实现复数类中的运算符重载(2)
  5. ES6关于Promise的用法
  6. 中间画一条短竖线_许愿孔明灯怎么画,简约好看的孔明灯简笔画教程
  7. 【技术综述】深度学习新手如何开始合适的“调参”任务
  8. RAC RMAN 通道配置 RMAN-12001 RMAN-12001 RMAN-10008 RMAN-10003 ORA-01017 错误
  9. Android Kotlin Coroutines ktx扩展
  10. MySQL基础课堂笔记
  11. 二十一、PHP框架Laravel学习笔记——模型的访问器和修改器
  12. 【算法导论33】跳跃表(Skip list)原理与java实现
  13. 区块链 xuperchain 命令行 部署使用EVM solidity合约 教程
  14. spark rdd详解一(rdd入门)
  15. 操作系统学习之windows发展史
  16. 矢量绘图界的性价比之王-Affinity Designer
  17. 百度登录界面CSS+HTML
  18. 学习笔记:强化学习与最优控制(Chapter 2)
  19. 荣耀20特别版 鸿蒙,【首发】鸿蒙OS华为首款特别版荣耀20全球发布,3999元你会支持吗...
  20. 数据分析师招聘岗位分析

热门文章

  1. 推荐基于.NetCore一款高性能敏感词检测开源库
  2. java开发常用在线工具整理
  3. 【小程序】快来开发你的第一个微信小游戏(详细流程)
  4. Java学习篇之I/O篇
  5. 图片裁剪源代码+php,php进行图片裁剪及生成缩略图程序源代码
  6. 在线图片裁剪,关于使用cropperjs踩过的坑
  7. Java、JSP小额支付管理平台
  8. matlab求解平面度,基于MATLAB的平面度评定
  9. kubernetes dns详解
  10. 最后两星期,怎么过6级?(最快攻略)