scala设计模式
xxfigo
这个作者很懒,什么都没留下…
展开
-
Scala设计模式Part I. 创建模式——1.抽象工厂
Part I. 创建模式1. 抽象工厂描述 抽象工厂的目的是为创建一系列相关或者依赖的对象提供一个接口,而不用指定具体的类例如我们要开发一个可以兼容不同OS平台GUI库,为了能够为图形窗口提供统一的视觉感受,在维护能跨OS运行的代码时,只能暴露window的接口给使用户用。通常窗口由多个挂件(菜单,按钮)组成,其中有些挂件与平台绑定。事实上不同平台上窗口的具体创建代码通过抽象工厂进行了分离。这原创 2016-05-23 15:34:40 · 916 阅读 · 0 评论 -
SBT核心概念
sbt: 核心概念 Scala 基础。不可否认,熟悉 Scala 语法非常有帮助。Programming in Scala,Scala 的作者写的非常好的介绍。.sbt 构建定义你的构建定义是一个大的 Setting 对象列表,sbt 使用 Setting 转换之后的键值对执行 task。为了创建 Setting,在一个 key 上调用其中的一个方法::=,+=转载 2016-11-18 20:07:26 · 787 阅读 · 0 评论 -
Scala.js:将Scala编译为JavaScript的编译器
Scala.js是一款将Scala代码编译为JavaScript代码的编译器,该编译器支持全部Scala语言特性。借助于Scala.js,开发者能够使用Scala开发从前端到后端的Web应用,而且Scala.js还带来了在服务器和客户端之间复用代码的可能性。Scala.js值得关注的特性包括:支持Scala语言的所有特性,包括宏(macros),仅有一些语义的不同;同JavaScr转载 2016-11-17 19:08:56 · 3005 阅读 · 0 评论 -
Scala的内建控制结构
Scala中的内建控制机构仅有if、while、for、try、match和函数调用。虽然Scala的基础控制结构少,但也足以支持指令式语言里所有的实质内容。因为它们都能产生值,有助于缩短代码。 程序员可以通过使用返回值的控制结构简化代码,避免创建临时变量来保存控制结构中的计算结果。1 If表达式1.1. 常规式var filename="default"if(!args.isEmpty)原创 2016-08-25 11:22:22 · 975 阅读 · 0 评论 -
深入Scala系列之一组件重用
本文根据Scala之父Martin Odersky的论文《Scalable Component Abstractions》而来,主要介绍Scala中三种实现可重用组件结构的方法:抽象类型成员(abstract type members)、明确的自身类型(explicit self type)和模块化的混入组合(modular mixin composition)1. 抽象类型成员(Abs原创 2016-07-06 15:41:40 · 1087 阅读 · 2 评论 -
基于Scala的REST框架Spray
Spray是一系列轻量级Scala库,提供基于Akka框架的客户端/服务端REST/HTTP功能。Spray提供了REST/HTTP所需的一系列可集成的组件,并且以纯ScalaAPI的方式实现,没有使用任何遗留的Java库。Spray的设计理念:完全异步、无阻塞 所有API都是完全异步的,所有实现都避免阻塞的代码。基于Actor和Future 完全基于Akka平台编程模型的实现,基于Akka原创 2016-07-25 13:13:48 · 6070 阅读 · 1 评论 -
一张图看清Map、Filter、Reduce
转载 2016-06-30 08:47:34 · 1007 阅读 · 0 评论 -
Scala设计模式Part II. 结构化模式———2.桥接模式
意图 从实现中分离抽象,使得两者都可以独立变化。桥接模式可以避免抽象与其实现之间的永久绑定。桥接模式对于一系列可扩展类非常重要,一般来说从一个类层次定义若干核心抽象,通过继承具体实现,每个都需要不同的实现。典型的例子是UI框架的窗口抽象。核心抽是窗口,它被子类具体实现。然后每个子类又被不同平台相应的窗口子类继承,这导致了子类的增生。这创建了抽象和实现之间永久的绑定,使得系统硬性绑定在一起。抽象原创 2016-05-30 22:42:52 · 606 阅读 · 0 评论 -
Scala设计模式Part II. 结构化模式———1.适配器
描述适配器模式的意图是: 把一个类的接口转换成客户端期望的另一个接口。适配器可以让彼此不兼容的接口协同工作。GOF给出了两种基本的适配器实现:类适配器和对象适配器。他们各有优缺点。类适配器使用继承实现一个类到另一个类的适配。如下图所示适配器类继成了Adaptee和适配目标Target接口。客户端在适配目标类上调用具体的操作时,适配器类会从被适配的类中调用相应的继承方法。继承可以通过重载方法补充原创 2016-05-30 21:49:58 · 1008 阅读 · 0 评论 -
Scala设计模式Part I. 创建模式——4.原型模式
描述 用原型实例指定要创建的对象类型,并通过原型拷贝创建新对象。原型提供了另一种不同于工厂方法的方式对创建者类与产品类进行解耦。工厂方法是由子类集成工厂类并重载工厂方法返回具体的类,而原型模式则是用组合代替继承。创建者通过一个提供克隆方法创建对象实例的原型对象进行参数化。通过继承原型对象(如下图中的Concrete Prototype1)或者参数化的方式创建不同的对象。参数化能帮助减少系统中类原创 2016-05-27 17:27:50 · 792 阅读 · 0 评论 -
Scala设计模式Part I. 创建模式——3.工厂方法
描述 工厂方法的意图是: 定义一个对象创建接口,但是让子类决定实例化哪个类。工厂方法让类的实例化延迟到子类。工厂方法通常用于实例化时无法确定其类型的情况。GOF中以一个应用程序框架为例。抽象应用程序类具备创建文档的功能。框架的用户根据具体的应用特性继承抽象文档类。框架的设计者无法确定具体确定应用类最终创建的是哪个文档类的子类,因为用户可以自由扩展文档类。为此应用类提供一个用于工厂方法,它原创 2016-05-25 23:21:23 · 1757 阅读 · 0 评论 -
Scala设计模式Part I. 创建模式——2.创建者模式
描述 创建者模式的意图是: 将复杂对象的创建与其表现分离,以使相同的创建过程能够创建不同的表现。GOF的例子是一个RTF文档交换格式的阅读器,这种格式支持多种不同的表现类型,例如ASCII文本以及GUI图形挂件,可以让用户根据需要编辑文本。 下图是该模式的UML。在GOF的例子中,阅读器扮演了下图中Director的角色。每个产品对应了不同的创建者,图中的产品(Product)就是例子原创 2016-05-25 20:55:23 · 790 阅读 · 0 评论 -
面向对象设计原则
1、封装变化:找出程序中会变化的方面,然后将其和固定不变的方面相分离。2、多用组合,少用继承3、针对接口编程,不对实现编程4、为交互对象之间的松耦合设计而努力5、对扩展开放,对修改关闭6、要依赖抽象,不要依赖具体类...原创 2018-03-14 15:28:09 · 888 阅读 · 0 评论