
Design Pattern
文章平均质量分 72
scott.cgi
要么编程,要么被编程,编程是一种超能力
展开
-
代码设计模式:一句话直击内涵与意义、极简代码示例、基础3类27种,以及更多概念与视角
有些设计模式日用而不知,有些设计模式看似概念复杂实则内核简单,还有些设计模式则化繁为简直至少即是多——本文,将在极简形式下,传递出基础设计模式最核心的基本思想,一共3类27种,即:创建型模式6种、结构型模式9种、行为型模式12种。原创 2024-07-18 21:39:00 · 803 阅读 · 0 评论 -
面向组件,状态机,消息驱动,三合一的编程模型
在实践中,发现面向组件,状态机,消息驱动。如果整合起来的模型,能够更为自然和简单的进行抽象。当然这些都是以面向对象为基础,更进一步的抽象扩展。本文,先会分别介绍一下,面向组件,状态机,消息驱动的各自特点。然后,介绍如何整合三者。最后,给出代码示例。第一,面向组件在游戏开发中有些引擎会使用基于组件的架构。比如unity3d就是其中的典型。基于组件,有以下特性。基类原创 2016-07-28 17:17:12 · 2480 阅读 · 1 评论 -
OOC 面向对象C语言编程实践
面向对象是一种编程思想,虽然C并没有提供面向对象的语法糖,但仍然可以用面向对象的思维来抽象和使用。这里分享一套C面向对象的写法,可以完成面向对象编程并进行流畅的抽象。这套写法是在实践中不断调整的结果,目前已经比较稳定,进行了大量的功能编写。 这套OOC有以下特性:没有强行去模仿c++的语法设定,而是使用C的特性去面向对象设计实现继承,组合,封装,多态的特性一套命名规原创 2016-07-23 17:10:57 · 2484 阅读 · 3 评论 -
正确使用Exception异常处理
错误有两种。一种是非运行时的,只能在开发阶段出现的。这需要让程序挂掉,解决掉问题才能继续运行。程序真正运行的时候是不能有这种情况的。这里就是用断言的地方。判断清楚在什么时候使用断言而不是返回错误提示很重要。一般我觉得,使用断言的地方,就是没有什么好讲的了,不应该不对,必须要对,错了必须改的地方,或者你觉得错了很low逼的问题。一种是运行时的。这种错误是可预见的,是被逻辑判断预先捕捉原创 2016-07-07 22:39:36 · 827 阅读 · 0 评论 -
C# 管理类的访问权限控制
c# 提供了internal关键来,来控制程序集的访问权限。但如果不提供dll的分发形式,internal的价值就无法体现出来。在管理类和被管理对象之间,常常需要互相访问一些属性,这就破坏了封装性。因为这些属性,并不想被其它方法修改,但又不得不标记为公开。比如:public class Tween{ public float duration;}public static class T原创 2017-09-05 11:35:50 · 2585 阅读 · 0 评论 -
「游戏引擎Mojoc」(4)面向组件-状态机-消息驱动3合1编程模型
实践中,发现面向组件-状态机-消息驱动,如果整合起来,能够更加自然和简单的进行抽象。这些都是以面向对象为基础,更进一步的抽象扩展。最初的灵感是在看这本书的时候产生的,Practical UML Statecharts in C/C++, Second Edition。本文会分别简单介绍一下,面向组件,状态机,消息驱动的各自特点。然后,结合Mojoc的代码,看看是如何把三者整合起来的使用的。面向组件显原创 2017-10-23 10:31:19 · 796 阅读 · 0 评论 -
「游戏引擎Mojoc」(3)C面向对象编程
用C语言进行面向对象编程,有一本非常古老的书,Object-Oriented Programming With ANSI-C。1994出版的,很多OOC的思想可能都是源于这本书。但我觉得,没人会把书里的模型用到实际项目里,因为过于复杂了。没有必要搞出一套OOP的语法,把C模拟的和C++一样,那还不如直接使用C++。Mojoc使用了一套极度轻量级的OOC编程模型,在实践中很好的完成了OOP的抽象。有以原创 2017-10-23 10:29:39 · 1031 阅读 · 0 评论