01 前言

说在前面

我的所有博客基本上都只是自己的学习记录,目前也还只是一名学生,并非教程博客,所以非常欢迎大佬们给出意见,他人观看时也不要盲目信从,因为可能存在基础性错误,勿怪

什么是框架?

在所有事情开始之前,我想问一个问题:框架是什么?
我本科是学JAVA的,搞JAVA的同学都清楚,JAVA系的框架那叫一个成熟那叫一个多,虽然我没啥兴趣学,但好歹也在学校的课程安排下使用过很多,但我从来没想过这个问题,什么叫框架?
单例模式是框架吗?MVC是框架吗?库是框架吗?System.IO是框架吗?
到现在我也没法给出一个很严谨的定义,但按照我的理解,框架是一种约束性的代码组织方式,它即约束了你的项目风格(包括代码格式和资源存放地址等),但同时也极大的方便了项目的管理与维护。

举个栗子!

我们项目里有很多图片文件,我们可以把他们都放在一个叫image的文件夹下,当然,我们也可以把他们放在一个叫text的文件夹下,但我相信能看懂这两个英文单词的人都会选择前者的做法,废话,大家都是正常人,想找图片的时候,第一想法肯定是去image里找啊!

我觉得这就能体现出框架的作用了,规范性+约束性,他首先限制了你的行为(必须把图片放到Image里),但他也方便了你项目的维护(因为你现在想找图片可以直接去Image,而不必搞什么脑际急转弯)

作用?

想象一下,你现在角色的名字叫做小明,整个程序里有1000个地方都需要用到这个名字

//1
print("小明");
//2
print("小明");
...
//1000
print("小明");

当然,你可以像这样,在每一个需要的地方都写上"小明",OK,这很好的满足了程序要求

直到策划说他想改个名…删库跑路吧,赶紧的(别告诉我可以用IDE查找一键替换!)

那肯定有人要骂我蠢,你就不能维护一个全局变量供程序使用吗?像这样:

public const string name="小明";
print(name);

需要的时候直接调用name,想改也只需要改一个name,多方便!

我只能说,这位同学已经悟了!大家别笑,其实我感觉框架的作用也就是如此了…把本来紧密关联的东西分离开来以方便维护与拓展

只不过在上面这给傻瓜例子里,我们是把部分不想关的代码抽离出函数,而框架要做的事情更加的复杂,它把整个系统尽可能的划分为不相关的很多模块,每一个模块只关心自己的例子,再用上面的例子来说,我们可能会有一个模块A专门用来维护name的相关操作,然后再另一个模块B里对name进行输出,A不关心name是用来干啥的,而B也不关心这个name是来自于哪里。

想起我刚学UNITY的时候,我在界面上放了一个button名字叫做start,start需要有自己的点击事件,于是我写了一个start类,在类里写了一个clickstart方法,并拖到了button的面板上,很简单,很清晰,很方便!直到我又放了一个button叫stop,stop也需要点击事件,于是我又要写一个stop类…等我写了10个button的时候,我只想说:我去**的

重复操作非常烦,而且这导致我的类数量急剧增加…然后聪明的我想了一个好办法,反正所有button的点击事件都差不多,我放到一个类了就得了,然后我把所有的点击事件函数都放到了一个叫buttonclick的类里…嗯,确实方便了不少,只不过我拖函数的时候眼睛快找瞎了…而且一旦我需要修改函数名字…毁灭吧,赶紧的

想必类似的事情很多人都遇到过,刚开始写项目的时候,因为Unity是组件式的架构,所以脚本可以随便放,随便拖,感觉很方便,但你越是随便,随着你项目的进行,你就会觉得开发越加困难…很多时候完全找不到某个脚本在哪,在干什么…这就是框架需要解决的问题——规范+约束=可维护

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值