![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
胜天半子_王二_王半仙
胜天半子——王二——王半仙儿是也
展开
-
使用异常作为结构的一个例子
有关异常和类属性暴露管理的杂谈在这篇文章里, 谈到了异常作为一种系统结构的工具, 而非程序中的错误处理, 但是苦于一直没有找到合适的示例, 今天终于找到了, 这里介绍下class A(object): def run(self): self.func1() # 统一进行错误处理 def func1(self): self.func2() def func2(self): self.func2() def func3(self): pass在执行run方法之后,原创 2021-11-10 17:47:01 · 122 阅读 · 0 评论 -
设计模式--依赖倒转原则 之 到底倒转在什么地方???
书上对依赖倒转原则的描述是高层不能依赖底层模块, 二者都应该依赖抽象那为什么不直接叫依赖抽象原则呢? 到底倒转在了什么地方呢?按照我们的正常思路, 高层使用底层的各种服务进行业务逻辑的开发, 所以高层是依赖底层的, 但是业务总是会发生变化, 这个时候如果底层需要进行改动, 那就要伤筋动骨, 所以我们把底层抽象一下, 让高层不用关心底层的实现即可.’但是这哪里体现出来了倒转了呢? 这样完全可以叫依赖抽象原则,或者是依赖接口原则啊, 其实是这样的,我们不直接对底层进行抽象, 而是对高层需要的服务进行原创 2021-10-21 10:45:52 · 97 阅读 · 0 评论 -
游戏时间的一种思路
游戏时间本身实现来讲很容易搞定,无非两种方法记录开始时间和时间流速比率,什么时候需要游戏时间,直接换算得到每一帧都通过现实世界的时间流逝长度,来进行游戏世界时间的更新这两种方法各有各的好处第一种方法的好处是性能好,不进行额外的计算,什么时候用什么时候进行换算,但是不好的地方是,这样的游戏时间类不能基于游戏时间来进行定时任务的加入,因为本来就是被动计算的,主动去触发一些任务,当然不行了第二种方法的好处是比较灵活,定时任务的加入也很方便,坏处当然就是会比较浪费性能,因为很多时候,进行一次循环是什原创 2020-10-28 00:06:32 · 276 阅读 · 0 评论 -
一些发开中的启发
1、技术非最优先框架为逻辑服务,逻辑为功能服务,功能为产品服务产品是第一优先,功能是第二优先,逻辑是第三优先,技术最后。有此感悟是因为最近在和新同事配合写项目,等到项目差不多都写好了,这个时候有位同事搞了个新的框架,并且是大改的框架出来,要问有没有什么好处,我也不清楚,反正站在开发逻辑的我的角度上来讲,项目都写完了,你搞一个新的框架出来让我改?玩呢?并且用了改框架有什么好处?除了浪费人力资源去搞,原有的框架已经完全满足开发需求了,并且很多逻辑和原先的框架融合很深了,那么唯一的好处就是彰显了写框架那位原创 2020-09-06 21:42:43 · 1490 阅读 · 0 评论 -
延时任务管理---定时任务管理
手动实现一个任务管理器这个管理器能够进行任务的添加,任务的延迟执行,任务类定义class MyTask(object): """task类,封装了要执行的函数 wangxiaofeng01@corp.netease.com""" # 需要执行的时间,方法本身,方法的参数 def __init__(self, time_out, target, *args, **kwargs): self.time_out = time_out self.target原创 2020-08-24 16:32:33 · 296 阅读 · 0 评论 -
有关异常和类属性暴露管理的杂谈
1、异常之前在读《clean code》的时候,读到其中的一章,讲什么异常的作用,说了什么垂直啊,不是报错而是设计啊啥的,也没看懂,不过最近好像忽然对此有了感受。之前不懂是因为写的项目不够大,代码不够复杂,所以根本用不到异常,最近写的这个项目也不是很大,其实也不复杂,但是因为我水平不够,设计能力更是不行,还在练气期七八层徘徊(凡人修仙传的级别),所以造成代码稍微复杂,其实也不是很复杂了,此时我顿悟到异常的作用,看来有望突破修炼瓶颈。那就是项目一旦复杂起来,再想让顶层的代码去对底层的逻辑代码造成影响就会原创 2020-08-23 16:14:55 · 256 阅读 · 0 评论 -
python递归拿到包里面所有的文件,文件里面所有的类名,以及类本身
1、递归拿到一个文件夹(python包)中所有的py文件路径使用os.walk(dir),可以递归拿到所有的文件夹,文件夹下所有的文件代码如下:import os# root就是你输入的目录,作为根目录# dirs就是当前目录下的目录列表# files就是当前遍历的目录下所有的文件for root, dirs, files in os.walk('yourTargerFolderPath'): for file in files: # 如果是py文件并且不是包的__init_原创 2020-08-13 19:17:40 · 1460 阅读 · 0 评论 -
C#委托与回调,用代码详细解释
一、先看看写法1、委托using System.Collections;using System.Collections.Generic;using UnityEngine;public class test2 : MonoBehaviour{ //声明委托类型 private delegate void MyTestDelegate(string data); //用委托类型声明委托事件 private MyTestDelegate myTestEventLi原创 2020-08-09 17:04:36 · 552 阅读 · 0 评论