- 浏览: 13347 次
- 性别:
- 来自: 南京
最新评论
文章列表
linux mongodb3安装
- 博客分类:
- scala
http://blog.csdn.net/cjuexuan/article/details/49491915,这边图片好难弄,我把我csdn链接发过来了
今天自己下了kafka-web-console的源码进行编译,记录遇到的问题和解决方法
第一个就是github上的sql脚本默认是h2 的,直接转mysql还是会出问题,主要两个问题是long作主键的问题,long在mysql中不能直接作主键,原因是超过索引范围,后面将其替换为bigint,另一个问题是alter table ,在mysql中应该使用alter table modify 的写法,而不是本文中alter column,还有一个问题是在mysql中partition是关键字,建表过程中需要用``包起来,否则不会通过编译
接下来就是用sbt编译play生成dist,然后解压进入bin路 ...
原有代码,其中使用了while循环和var
/**
* 模版方法
* 玩游戏,从控制台读入
*/
def play(): Unit = {
println(s"当前积分为$score,请输入您本次游戏的筹码,0退出本游戏")
var point = io.StdIn.readDouble()
while (point != 0) {
check(point)
println(s"当前积分为$score,请输 ...
package com.linewell.modeldesign.observer
import scala.collection.mutable.ArrayBuffer
import scala.util.Random
/**
* 某软件公司欲开发一款实时在线证劵软件,该软件需要提供以下功能:
* 当股票购买者购买的某只证劵价格幅度达到5%时,系统将自动的发送通知
* 包括新价格给购买该股票的所有股民
*
*
* 设计思路:
* 采用观察者模式
* 股票是目标类
* 股民是抽象观察者
* 具体人是具体的观察者
* 须在目标类中注册观察者
*
* Created b ...
状态模式主要用于检测和切换状态,在状态模式下状态的转化对于客户端是透明的,常用场合比如公文的流转,游戏的角色升级
package com.linewell.modeldesign.state
import scala.util.Random
/**
* 某软件公司欲开发一款纸牌游戏软件,在该软件中用户角色具有入门级、熟练级、高手级和骨灰级
* 角色的等级和积分对应,游戏胜利增加积分,游戏失败扣除积分
* 入门级具有最基本的功能play() 0 - 20
* 熟练级在呢家了游戏胜利积分加倍功能doubleScore() 20 -40
* 高手级在熟练级的基础上增加了换牌的功能cha ...
访问者模式的使用条件比较苛刻主要可以以用于新增访问者时只需要新增一个访问者类,原有代码无需修改,增加一个被访问者时只需增加一个访问方法并在具体访问者中实现,源码同样不需要改变,符合开闭原则
通过访问者和被访问者集中到对象结构供访问者访问的方式使得类的职责更加明确,同一个结构对象可供多个访问者访问,实现代码的复用package com.linewell.modeldesign.visitor/** * 某公司欲为某高校开发一套奖励审批系统,该系统可以实现教师奖励和学生奖励的审批 * 如果教师发表论文超过10篇或者学生发表论文超过2篇,就可以评科研奖 * 如果教师教学反馈分大于90分或者学生平时 ...
package com.linewell.modeldesgin.visitor
import scala.collection.mutable.ArrayBuffer
/**
* 访问者模式
* 员工特质:抽象元素类
* Created by ctao on 2015/9/2.
*/
trait Employee {
/**
* 接受一个抽象的访问者
* @param handler 抽象访问者
*/
def accept(handler: Department)
}
/**
* 正式员工:具体元素类
* @param name ...
package com.linewell.modeldesgin.template
import com.linewell.modeldesgin.dao.AccessDAO
import scala.collection.mutable.ArrayBuffer
/**
* 模版方法模式
* Created by ctao on 2015/9/2.
*/
trait Account {
/**
* 验证帐号
* @param account 用户名
* @param pass 密码
* @return 是否合法
*/
...
package com.linewell.modeldesgin.state
/**
* * 状态模式,银行账户,环境类
* Created by ctao on 2015/9/2.
* @param owner 持卡人
* @param state 账户状态
* @param balance 余额
*/
class Account(owner: String, var state: State = null, var balance: Double = 0) {
/**
* 初始化帐号,设置帐号为正常状态
*/
state = NormalS ...
package com.linewell.modeldesgin.observer
import scala.collection.mutable.ArrayBuffer
/**
* 观察者模式
* Created by ctao on 2015/9/2.
* 抽象观察类
*/
abstract class Observer(var name: String) {
/**
* 支援盟友的方法
*/
def help(): Unit
/**
* 被攻击的方法
* @param allControlCenter 目标类
...
package com.linewell.modeldesgin.iterator
import scala.collection.mutable.ArrayBuffer
/**
* 抽象迭代器特质
* Created by ctao on 2015/9/1.
*/
trait AbstractIterator {
/**
* 移至下一个元素
*/
def next(): Unit
/**
* 判断是否为最后一个元素
* @return 是否为最后一个元素
*/
def isLast: Boolean ...
package com.linewell.modeldesgin.memento
import scala.collection.mutable.ArrayBuffer
/**
* 备忘录模式,在command模式中简单实现过一次
* 原发器:象棋类
* Created by ctao on 2015/9/1.
* @param label 标签
* @param x x坐标
* @param y y坐标
*/
case class Chessman(var label: String, var x: Int, var y: Int) extends ChessmanFunct ...
package com.linewell.modeldesgin.mediator
import scala.collection.mutable.ArrayBuffer
/**
* 中介者模式,抽象中介者,通信软件
* Created by ctao on 2015/9/1.
*/
abstract class AbstractSoftware(val name: String) {
private var persons = new ArrayBuffer[Person]()
/**
* 增加用户
* @param person 用户
...
本来是看解释器模式,但感觉scala的实现的流利接口可以更优雅和简单的实现,所以并没有选择用解释器模式,而是采用流利接口实现的
package com.linewell.modeldesgin.interpreter
/**
* 行为特质
* Created by ctao on 2015/8/31.
*/
trait Action
/**
* 方向特质
*/
trait Direction
/**
* 向上实现方向特质
*/
object Up extends Direction
/**
* 向下实现方向特质
*/
object Down extends Direc ...
package com.linewell.modeldesgin.command
import scala.collection.mutable.ArrayBuffer
/**
* 加法类,请求接收者
* Created by ctao on 2015/8/30.
*/
class Adder {
/**
* 计算器初始值
*/
private var num = 0
/**
* 加法操作
* @param value 传入值
* @return 计算结果
*/
def add(value: ...