设计模式&软件工程
包含设计模式以及软件工程中的设计思想,如面向对象,面向数据,以及常用架构;
莫之
不努力奔跑,怎么能停在原地
展开
-
设计模式之代理模式(Proxy Pattern)
一、代理模式概述Proxy代理模式,它指的是不需要本人亲自完成工作,而是寻找代理人帮助完成,但是代理人能代替本人做的事情是有限的,有一些问题自己无法解决还是必须要找到被代理人解决问题;为什么需要代理,举个生活的例子,打官司一般都会有代理律师,虽然我们也可以学习法律,但是成本很高,而有了律师以后,我们就不必再关心各种流程细节,但是当律师需要求证信息的时候,仍然需要被代理人配合;二、程序示例如下是模拟一个带名字的打字机,就是将文字显示到界面上;为了让代理类和被代理类具有行为的一致性,我们需要原创 2020-12-06 14:30:14 · 197 阅读 · 0 评论 -
谈编程中函数的封装理念
我们了解封装这种理念,一般都是从面向对象的三大特性中开始的,它是强调将方法和属性封装到一个类中;而这里强调的封装则基于函数的粒度,并且讨论如何在实际编码过程中做好函数的封装;在了解如何做好封装之前,首先要明白封装会带来哪些具体的好处或者没有良好的封装会带来哪些灾难?所以,我们要先重复提及一下概念: 封装可以良好执行DRY原则,也就是可以减少重复,这是软件工程中最核心的原则之一 没有什么问题不可以通过添加一层抽象来解决,在我们的编程中,从最高级的API到最底层的内核,其实是经历了层层的原创 2020-06-08 14:42:47 · 861 阅读 · 0 评论 -
简单认识ECS之Entity
一、ECS概述ECS的核心思想是面向数据的技术栈,为什么不再是面向对象的处理方式呢,因为游戏的逻辑大多是需要每帧刷新的,但是对游戏系统的要求则是复杂而又高效,这种机制注定了游戏编程使用面向对象的那种方式不如面向数据高效;面向数据的设计更多的是一种程序优化方法,其有效利用的是CPU缓存,通过集中数据布局,根据需要的时间对字段进行分离和排序,并考虑数据的转换,来提高CPU缓存的命中;而传统的面向对象的编程,它的设计原理就会导致不良的数据局部性;它包含三个核心部分; Entity,实体,用于填充原创 2020-06-04 20:13:20 · 1227 阅读 · 0 评论 -
游戏设计模式——面向数据编程(转)
作者:KillerAery出处:http://www.cnblogs.com/KillerAery/随着软件需求的日益复杂发展,远古时期面的向过程编程思想才渐渐萌生了面向对象编程思想。当人们发现面向对象在应对高层软件的种种好处时,越来越沉醉于面向对象,热衷于研究如何更加优雅地抽象出对象。然而现代开发中渐渐发现面向对象编程层层抽象造成臃肿,导致运行效率降低,而这是性能要求高的游戏编程领域不想看到的。于是现代游戏编程中,面向数据编程的思想越来越被接受(例如Unity2018更新的ECS框架就是.转载 2020-06-02 20:14:25 · 3018 阅读 · 0 评论 -
《Game Programming Pattern》游戏编程模式读书笔记之架构、性能和游戏
前言:《游戏编程模式》是一本关于游戏的设计模式的书籍,主要讲解如何架构代码;原版为英文版,有电子版本,网络上也有翻译的中文版本,另外我也参考了知乎的一些读书笔记,结合个人理解做了点笔记;参考:1.《Game Programming Pattern》英文原版2.游戏编程模式中文翻译3.其它读书笔记,知乎-游戏设计模式(一) 序言:架构,性能与游戏正文:本文主要内容就是关于...原创 2020-03-08 21:55:49 · 506 阅读 · 0 评论 -
设计模式之观察者模式
一、观察者模式介绍二、模式引用之Lua中的事件分发LuaEvent.lua:封装了一个具体的事件相关的内容,一个LuaEvent是一个发布者,它包含了一系列订阅者,以及发布-订阅等方法;local LuaEvent={}function LuaEvent:New(eventId) local tb={} tb.eventId=eventId tb.obse...原创 2020-02-16 14:50:11 · 187 阅读 · 0 评论 -
设计模式之Factory Method模式
一、什么是Factory Method模式在Template Method模式中,在父类的模板方法中定义处理流程,在子类中做具体实现,现在将该模式用于生成实例,也就是Factory Method模式;在Factory Method模式中,父类决定实例的生成流程,但是它不决定索要生成的是哪一个具体类,具体的处理交给子类负责;这种模式就是将生成实例的框架和实际负责生成实例的具体类进行解耦;...原创 2020-01-12 18:59:43 · 198 阅读 · 0 评论 -
设计模式之Template Method模式(Lua版和C#版)
一、什么是Template Method模式Template Method模式是带有模板功能的模式,组成模板的方法被定义在父类中,而且在父类中实现;在父类中我们只知道父类模板方法中的调用逻辑,而不知道具体实现(依赖抽象);在父类中定义处理流程的框架,在子类中实现具体处理的模式就是Template Method模式;二、简单示例如下,我们定义了一个ObjDisplay的抽象类,它用于...原创 2020-01-12 18:03:47 · 214 阅读 · 0 评论 -
设计模式七大原则(详细版)
设计模式的七大原则设计模式七大原则由SOLID原则加上迪米特法则以及多组合少继承原则组成;所有的设计模式都是建立在设计原则的基础上,所有的设计模式都有对这些原则的体现;一.单一职责原则定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职...原创 2020-01-12 17:14:32 · 422 阅读 · 0 评论 -
设计模式之迭代器模式
一.前言本文是作者在参考了一些经典文章后,整合了一些前人的理解和阐述,并加入了一些自己的感悟。参考文章:设计模式-菜鸟教程原创 2020-02-17 13:22:03 · 102 阅读 · 0 评论