设计模式
文章平均质量分 76
chenjuexuan
努力成为一只高等程序猿
展开
-
scala实现单例模式
设计保证负载均衡服务器的唯一性,主要提供增加服务器,删除服务器,分发的功能package com.linewell.modeldesgin.singletonimport scala.collection.mutable.ArrayBufferimport scala.util.Random/** * Created by ctao on 2015/8/6. *...原创 2015-08-06 19:39:21 · 941 阅读 · 0 评论 -
scala实现命令模式
package com.linewell.modeldesgin.commandimport scala.collection.mutable.ArrayBuffer/** * 加法类,请求接收者 * Created by ctao on 2015/8/30. */class Adder { /** * 计算器初始值 */ ...2015-08-30 21:20:16 · 129 阅读 · 0 评论 -
scala实现解释器模式
本来是看解释器模式,但感觉scala的实现的流利接口可以更优雅和简单的实现,所以并没有选择用解释器模式,而是采用流利接口实现的package com.linewell.modeldesgin.interpreter/** * 行为特质 * Created by ctao on 2015/8/31. */trait Action/** * 方向特质 *...2015-08-31 20:20:29 · 168 阅读 · 0 评论 -
scala实现中介者模式
package com.linewell.modeldesgin.mediatorimport scala.collection.mutable.ArrayBuffer/** * 中介者模式,抽象中介者,通信软件 * Created by ctao on 2015/9/1. */abstract class AbstractSoftware(val name: St...原创 2015-09-01 14:48:54 · 83 阅读 · 0 评论 -
scala实现备忘录模式
package com.linewell.modeldesgin.mementoimport scala.collection.mutable.ArrayBuffer/** * 备忘录模式,在command模式中简单实现过一次 * 原发器:象棋类 * Created by ctao on 2015/9/1. * @param label 标签 * @param ...2015-09-01 22:54:50 · 86 阅读 · 0 评论 -
scala实现迭代器模式
package com.linewell.modeldesgin.iteratorimport scala.collection.mutable.ArrayBuffer/** * 抽象迭代器特质 * Created by ctao on 2015/9/1. */trait AbstractIterator { /** * 移至下一个元素...原创 2015-09-01 22:56:30 · 210 阅读 · 0 评论 -
scala实现观察者模式
package com.linewell.modeldesgin.observerimport scala.collection.mutable.ArrayBuffer/** * 观察者模式 * Created by ctao on 2015/9/2. * 抽象观察类 */abstract class Observer(var name: String) {...2015-09-02 16:35:15 · 108 阅读 · 0 评论 -
scala实现状态模式
package com.linewell.modeldesgin.state/** * * 状态模式,银行账户,环境类 * Created by ctao on 2015/9/2. * @param owner 持卡人 * @param state 账户状态 * @param balance 余额 */class Account(owner: String,...2015-09-02 16:37:56 · 375 阅读 · 0 评论 -
scala实现模版方法模式
package com.linewell.modeldesgin.templateimport com.linewell.modeldesgin.dao.AccessDAOimport scala.collection.mutable.ArrayBuffer/** * 模版方法模式 * Created by ctao on 2015/9/2. */trait...2015-09-02 20:54:15 · 525 阅读 · 0 评论 -
scala实现访问者模式
package com.linewell.modeldesgin.visitorimport scala.collection.mutable.ArrayBuffer/** * 访问者模式 * 员工特质:抽象元素类 * Created by ctao on 2015/9/2. */trait Employee { /** * 接受一个抽象的...2015-09-02 20:54:56 · 100 阅读 · 0 评论 -
再探设计模式之访问者模式
访问者模式的使用条件比较苛刻主要可以以用于新增访问者时只需要新增一个访问者类,原有代码无需修改,增加一个被访问者时只需增加一个访问方法并在具体访问者中实现,源码同样不需要改变,符合开闭原则通过访问者和被访问者集中到对象结构供访问者访问的方式使得类的职责更加明确,同一个结构对象可供多个访问者访问,实现代码的复用package com.linewell.modeldesign.visitor/*...2015-09-03 14:44:47 · 151 阅读 · 0 评论 -
再探设计模式之状态模式(纸牌游戏的开发)
状态模式主要用于检测和切换状态,在状态模式下状态的转化对于客户端是透明的,常用场合比如公文的流转,游戏的角色升级package com.linewell.modeldesign.stateimport scala.util.Random/** * 某软件公司欲开发一款纸牌游戏软件,在该软件中用户角色具有入门级、熟练级、高手级和骨灰级 * 角色的等级和积分对应,游戏胜...原创 2015-09-04 13:52:46 · 961 阅读 · 0 评论 -
scala实现职责链模式
package com.linewell.modeldesgin.responsechain/** * 职责链模式,自我感觉和akka的管理机制很像 * Created by ctao on 2015/8/30. *//** * 审批对象 * @param amount 金额 * @param number 编号 * @param purpose 采购目...2015-08-30 13:38:33 · 205 阅读 · 0 评论 -
scala实现享元模式
package com.linewell.modeldesgin.flyweightimport scala.collection.mutable/** * 享元模式 * Created by ctao on 2015/8/29. *//** * 坐标样例类 * @param x x坐标 * @param y y坐标 */case clas...2015-08-30 00:17:06 · 94 阅读 · 0 评论 -
scala实现简单工厂
package com.linewell.modeldesgin.simplefactory/** * Created by ctao on 2015/8/6. * 抽象产品类,抽象图表特质,具有展示方法 */abstract class Chart { def display():Unit}/** * 柱状图,继承抽象图 */class...原创 2015-08-06 20:23:45 · 252 阅读 · 0 评论 -
scala实现抽象工厂
package com.linewell.modeldesgin.abstractfactory/** * Created by ctao on 2015/8/8. * 抽象工厂模式 *//** * 皮肤工厂特质 */trait SkinFactory { /** * 创建按钮方法 * @return 按钮特质 ...原创 2015-08-08 15:51:40 · 116 阅读 · 0 评论 -
scal实现工厂方法模式
package com.linewell.modeldesgin.factorymethod/** * Created by ctao on 2015/8/4. * 工厂方法模式 *//** * 日志工厂特质 */trait LoggerFactory { /** * 创建日志方法 * @return 日志 */...原创 2015-08-08 16:00:12 · 141 阅读 · 0 评论 -
scala实现建造器模式
package com.linewell.modeldesgin.builder/** * 建造者模式 * Created by ctao on 2015/8/8. *//** * 角色建造者 */trait ActorBuilder { /** * 角色 */ protected var actor: Actor...原创 2015-08-08 17:47:10 · 216 阅读 · 0 评论 -
scala实现原型模式
package com.linewell.modeldesgin.prototype/** * 样例类,周报,通过其提供的copy方法完成一个原型模式 * @param name 姓名 * @param date 时间 * @param content 内容 */case class WeeklyLog(var name: String, var date: Strin...2015-08-08 22:56:55 · 94 阅读 · 0 评论 -
scala实现适配器模式
package com.linewell.modeldesgin.adpter/** * 适配器模式 * 原有的快速排序和二分排序算法,和目标接口并不相符合 * Created by ctao on 2015/8/9. *//** * 抽象目标 */trait ScoreOperation { /** * 排序 * @par...原创 2015-08-09 11:08:46 · 125 阅读 · 0 评论 -
scala实现桥接模式
package com.linewell.modeldesgin.bridge/** * 抽象图片 * Created by ctao on 2015/8/9. */abstract class Image { //图片实现方式 var imageImp : ImageImp //文件设置 def parseFile(fileName...原创 2015-08-16 11:13:51 · 103 阅读 · 0 评论 -
scala实现组合模式
package com.linewell.modeldesgin.Compositeimport scala.collection.mutable.ArrayBuffer/** * 抽象构件,透明组合模式 * Created by ctao on 2015/8/16. */trait AbstractFile { def add(abstractFile:...2015-08-16 11:14:43 · 181 阅读 · 0 评论 -
scala实现装饰者模式
package com.linewell.modeldesgin.decorator/** * 抽象界面构件类 * Created by ctao on 2015/8/16. */trait Component { def display(): Unit}/** * 窗口具体构件类 */class Window extends Compon...2015-08-16 19:52:50 · 285 阅读 · 0 评论 -
scala实现外观模式
package com.linewell.modeldesgin.facadeimport java.io.{FileNotFoundException, IOException}import scala.io.Source/** * 读文件,子系统类 * Created by ctao on 2015/8/28. */class FileReader {...原创 2015-08-28 21:41:00 · 93 阅读 · 0 评论 -
scala实现代理模式
package com.linewell.modeldesgin.proxyimport com.linewell.modeldesgin.dao.AccessDAOimport scala.collection.mutable.ArrayBuffer/** * 代理模式 * Created by ctao on 2015/8/29. *//** * 抽...2015-08-30 00:16:11 · 651 阅读 · 0 评论 -
再探设计模式之观察者模式(股票通知系统)
package com.linewell.modeldesign.observerimport scala.collection.mutable.ArrayBufferimport scala.util.Random/** * 某软件公司欲开发一款实时在线证劵软件,该软件需要提供以下功能: * 当股票购买者购买的某只证劵价格幅度达到5%时,系统将自动的发送通知 * ...2015-09-05 10:28:12 · 1805 阅读 · 0 评论