java美颜源码_美颜Java

从原生的Java API创建线程谈起,讲述Scala对「控制结构」抽象的设计与实现.

创建线程

在Java8之前,创建一个线程的典型方法如下。

Thread t = new Thread(new Runnable() {

@Override

public void run() {

...

}

});

t.start();

使用Java8

使用Java8,可以除去一部分冗余的语法噪声,表达力得到了提升。

Thread t = new Thread(() -> {

...

});

t.start();

使用Scala

尝试使用Scala,对Java的接口进行包装处理,可以得到更加人性化的接口。首先定义runnable的控制结构:

def runnable(callback: => Unit) = new Runnable {

override def run() = callback

}

然后,定义thread的关键字,实现Thread的创建。

def thread(callback: Unit) = new Thread(runnable(callback))

用户API也变得更加简洁,其感觉形如if, while等内置的控制结构,表达力非常强。

thread {

...

}

多样化

上例创建的是匿名的线程,如果想创建有名线程,并将其设置为Daemon线程,可以如下设计。

daemon("daemon-service-1") {

...

}

可以如下实现:

def daemon(name: String)(callback: => Unit): Thread = {

val t = new Thread(runnable(callback), name)

t.setDaemon(true)

t.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler {

override def uncaughtException(t: Thread, e: Throwable) =

error(s"Uncaught exception in ${t.getName}:${e.toString}")

})

t

}

t.setUncaughtExceptionHandler的入参有点复杂,可以通过「提取函数」改善表达力。

def daemon(name: String)(callback: => Unit): Thread = {

val t = new Thread(runnable(callback), name)

t.setDaemon(true)

t.setUncaughtExceptionHandler(handler)

t

}

private def handler = new Thread.UncaughtExceptionHandler {

override def uncaughtException(t: Thread, e: Throwable) =

error(s"Uncaught exception in ${thread.getName}:${e.toString}")

}

接下来,以此类推,可以提取「抽象结构」,改善程序的表现力。

private def handler = onException { (thread, except) =>

error(s"Uncaught exception in ${thread.getName}:${except.toString}")

}

private def onException(h: (Thread, Throwable) => Unit) =

new Thread.UncaughtExceptionHandler {

override def uncaughtException(t: Thread, e: Throwable): Unit = h(t, e)

}

也就是说,onException和runnable, thread, daemon一样,是对Java接口的修饰或隐藏。

总结

Scala是设计DSL的利器。

借助于柯里化,及其漂亮的大括号语法,使得Scala创建自定义的「控制结构」变得非常容易;同时可以有效地除去冗余的语法噪声,提升代码的可读性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
美颜相机 3.1.0 大小:22.49MB 版本:3.1.0 适用系统:Android 2.3.1以上 开发者:厦门美图网科技有限公司 应用简介 美颜相机-把手机变成自拍神器! •美图秀秀团队倾力打造!大牌明星强力推荐! •最流行的自拍软件,亿万用户正在使用, 好评率全球第一!! 专为爱自拍的女生量身定制,颠覆传统自拍效果,瞬间自动美颜,效果比化妆品神奇! 【美颜相机3.1.0更新信息】 1、“高级美颜-增高”功能惊艳登场,瞬间拥有修长美腿; 2、提升美颜效果,照片细节更清晰; 3、 全新体验,国际化界面和多语言支持~ ===== 特色亮点 ===== •自 拍• #一键变美# 一键让你的肌肤瞬间完美无暇!傻瓜式操作,七个美颜级别,量身打造你的美丽! #效果出众# 全自动磨皮、美白、降噪、瘦脸、美化眼睛,让你拥有嫩白肌肤、尖俏小v脸! #人脸识别# 通过智能的人脸识别技术和极速美颜算法,皮肤和头发细节完美呈现。 •视频自拍• 重磅推出“视频自拍”功能,最流行的10秒短视频拍摄,采用领先的视频美颜技术,令你时刻拥有水嫩肌肤,拍视频也能美美哒! •高级美颜• 1、一键美颜:只需按一下,即可变美,7种美颜风格,比化妆品还神奇; 2、磨皮美白:让皮肤白皙透亮,自然收细毛孔; 3、祛斑祛痘:轻松点掉烦恼的痘痘,祛斑不留痕; 4、瘦脸瘦身:划指间,自然修容,优化脸型,强效击退双下巴,提拉紧致瘦身,让象腿变长腿、胖妞变超模~ 5、祛黑眼圈:熬夜晚睡,也可以跟细纹、熊猫眼saygoodbye; 6、美化眼睛:让您1秒拥有水灵灵的大眼睛; 7、亮眼:加亮眼部轮廓,让你的眼睛明眸闪耀; 8、美颜特效:独家研发的多款细腻的人像特效,瞬间渗透,快速拥有惊艳面容; 还支持分享到instagram、facebook、line、微信、朋友圈、新浪微博哦,赶快下载体验吧! 如果觉得好别忘记告诉朋友哦!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值