Head First设计模式之享元模式(蝇量模式)

一、定义享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。我们将通过创建 5 个对象来画出 2
27次阅读

[D3] Start Visualizing Data Driven Documents with D3 v4

It’s time to live up to D3’s true name and potential by integrating some real data into your visualization. This lesson introduces the fun
27次阅读

Head First设计模式之代理模式

一、定义定义:为其他对象提供一种代理以控制对这个对象的访问在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。二、结构代理模式一般会有三个角色:  抽象角色(Subject):指代理角色和真实角色对外提供的公共方法,一般为一个接口  真实角色(RealSubject):需要实现抽象角色
25次阅读

今天遇到的一个诡异的core和解决 std::sort

其实昨天开发pds,就碰到了core,我还以为是内存不够的问题,或者其他问题。今天把所有代码挪到了as这里,没想到又出core了。根据直觉,我就觉得可能是std::sort这边的问题。 上网一搜,果然很多提到了这个问题。 原来 std::sort调用的方法,在相同元素这里,不能够
8次阅读

根据马甲、应用商店、统计每天的注册量,要求可以根据选择马甲和app,马甲和appstrore和user_login不同表问题

这个马甲属于一个表,appStore另一张表,用户登录表,主要操作的就是这三个表。我这里的马甲和app的id都与用户登录表中的channel对应,在channel存放的是majiaId + “|” + storeId 第一版sql:select count(*), sms_tag_name
14次阅读

Head First设计模式之桥接模式

一、定义桥接模式(Bridge Pattern),将抽象部分与它的实现部分分离,使的抽象和实现都可以独立地变化。主要解决:在多维可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。何时使用:实现系统可能有多个角度分类,每一种角度都可能变化。如何解决:把这种多角度分类分离出来,让它们独立变化,
27次阅读

Head First设计模式之组合模式

一、定义将对象组合成树形结构来表现"整体-部分"层次结构。 组合能让客户以一致的方法处理个别对象以及组合对象。主要部分可以被一致对待问题.在使用组合模式中需要注意一点也是组合模式最关键的地方:叶子对象和组合对象实现相同的接口。这就是组合模式能够将叶子节点和对象节点进行一致处理的原因。二、结构&nbs
29次阅读

策略模式Strategy

今天看书的时候不小心又看到了策略模式的描述,感觉挺经典的:  创建一个能够根据所传递的参数对象的不同而具有不同行为的方法,被称为策略设计模式。这个就是我们的策略模式,使用的是传递接口对象,使用对应对象的策略处理对应的问题。图:  简单Demo:abstract class Customer{
10次阅读

Head First设计模式之外观模式

一、定义外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。外观模式不只是简化了接口,也将客户从组件的子系统中解耦。外观和适配器可以包装许多类,但是外观强调的是简化接口,而适配器是为了将接口转换成不同的接口。二、结构外观角色(Facade):是模式的
28次阅读

ReactiveSwift源码解析(九) SignalProducerProtocol延展中的Start、Lift系列方法的代码实现

上篇博客我们聊完SignalProducer结构体的基本实现后,我们接下来就聊一下SignalProducerProtocol延展中的start和lift系列方法。SignalProducer结构体的方法扩展与Signal的扩展相同,都是面向协议的扩展。首先创建了一个SignalProducerPr
109次阅读