码上见分晓!
中文版本的设计模式详解,案例中的代码尽量使用了中文.
以游戏和生活中较好理解的场景讲解设计模式的实际用法,便于理解吸收,让设计模式的学习不再困难!!!
更多设计模式欢迎来到我的开源项目设计模式中文版

https://gitee.com/nightrunner/chinese-version-of-design-patterns

/*** 自己来创造英雄!!* 用于constructor的"反范式",因为范式型constructor的参数过多,例如本例需要7个参数,后续还有可能增加更多参数,使用构造器这种方式时,后面增加参数只需要增加代码,不需要修改原有代码*/
public class 构造器模式主程序 {public static void main(String[] args) {角色 角色 = new 角色.构造器(职业.亚马逊, "射射射").设置发型(发型.长马尾).设置发色(发色.红色).设置武器(武器.弓).设置副手(副手.箭袋).设置装甲(装甲.轻甲).构建();System.out.println("角色 = " + 角色);}
}class 角色 {private 职业 职业;private 发型 发型;private 发色 发色;private 武器 武器;private 装甲 装甲;private 副手 副手;private String 角色名称;public 角色(构造器 构造器) {this.角色名称 = 构造器.角色名称;this.发型 = 构造器.发型;this.发色 = 构造器.发色;this.武器 = 构造器.武器;this.装甲 = 构造器.装甲;this.职业 = 构造器.职业;this.副手 = 构造器.副手;}@Overridepublic String toString() {return "角色:{"+ "角色名称:" + this.角色名称 + ", "+ "发型:" + this.发型 + ", "+ "发色:" + this.发色 + ", "+ "武器:" + this.武器 + ", "+ "装甲:" + this.装甲 + ", "+ "职业:" + this.职业 + ", "+ "副手:" + this.副手 + ", "+ "}";}public static class 构造器 {职业 职业;发型 发型;发色 发色;武器 武器;副手 副手;装甲 装甲;String 角色名称;public 构造器(职业 职业, String 角色名称) {this.职业 = 职业;this.角色名称 = 角色名称;}public 构造器 设置发色(发色 发色) {this.发色 = 发色;return this;}public 构造器 设置发型(发型 发型) {this.发型 = 发型;return this;}public 构造器 设置武器(武器 武器) {this.武器 = 武器;return this;}public 构造器 设置副手(副手 副手) {this.副手 = 副手;return this;}public 构造器 设置装甲(装甲 装甲) {this.装甲 = 装甲;return this;}public 角色 构建() {return new 角色(this);}}
}enum 职业 {刺客,德鲁伊,法师,圣骑士,野蛮人,亚马逊,死灵法师
}enum 发型 {秃头,披肩长发,长马尾,短发;
}enum 发色 {红色,白色,黑色,绿色,紫色
}enum 武器 {法杖,短剑,双手剑,双手斧,双手锤,爪子,弓,弩
}enum 副手 {盾牌,死灵法师尿壶,爪子,箭袋,弩袋
}enum 装甲 {布甲,轻甲,重甲
}

设计模式-构造器模式-java-中文版相关推荐

  1. Java 设计模式 --- Template 模式 Java Template 模式 Java 模板设计模式

    Java 设计模式 --- Template 模式 Java Template 模式 Java 模板设计模式 一.概述 模板设计模式: 父类定义通用抽象的功能方法,子类负责具体的实现. 本文将以一个通 ...

  2. [设计模式] - 策略模式(Java篇)

    来源:http://user.qzone.qq.com/31584 (QQ空间) http://b.qzone.qq.com/cgi-bin/blognew/blog_output_data?uin= ...

  3. 设计模式--模板方法模式--Java实现-- java访问控制关键字用法

    1.什么是模板方法 2.具体实现步骤 5.优缺点 6适用场景 java访问控制关键字用法 – protected的解释 (1)私有的:用关键字private修饰,只有本类可见. (2)默认的:不用访问 ...

  4. 设计模式--代理模式--Java实现

    AOP的代理模式,我们无法改变jar包的源码,我们可以运用代理模式,在方法前后进行业务的扩展,这也是一种代理模式的应用. 动态代理减少了静态代理的类数量的膨胀

  5. 设计模式--策略模式--Java实现

    ***策略模式4步走***

  6. 简单工厂和 工厂设计模式--抽象工厂模式--Java实现

    简单工厂不是23种设计模式 工厂方法·模式 :定义一个创建对象得接口,但是让实现这个接口的类来决定实例化哪一个类,工厂方法能使得类的实例化推迟到子类中进行 工厂方法缺点: 增加了类的数量,增加复杂度 ...

  7. Java设计模式(备忘录模式-解释器模式-状态模式-策略模式-职责链模式)

    Java设计模式Ⅶ 1.备忘录模式 1.1 备忘录模式概述 1.2 代码理解 2.解释器模式 2.1 解释器模式概述 3.状态模式 3.1 状态模式概述 3.2 代码理解 4.策略模式 4.1 策略模 ...

  8. Java设计模式(代理模式-模板方法模式-命令模式)

    Java设计模式Ⅴ 1.代理模式 1.1 代理模式概述 1.2 静态代理 1.2.1 静态代理概述 1.2.2 代码理解 1.3 动态代理之JDK代理 1.3.1 动态代理之JDK代理概述 1.3.2 ...

  9. Java常用设计模式————工厂模式

    简介: 工厂模式(Factory Pattern)是Java中最常用的设计模式之一,又称多态工厂模式.虚拟构造器模式.属于创建型模式. 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通 ...

最新文章

  1. 【论文写作分析】之一 《基于混合注意力Seq2seq模型的选项多标签分类》
  2. 浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源
  3. 【Android 热修复】热修复原理 ( 类加载机制 | PathClassLoader 加载 Dex 机制 | PathDexList 查找 Class 机制 | 类查找的顺序机制 )
  4. 小程序app is not defined
  5. JDBC概念快速入门工具类Util的写法
  6. srsLTE源码学习:协议数据单元PDU:pdu.h
  7. Starling Feathers:Starling专属UI框架
  8. SQLite 事务控制
  9. mysql 未发现数据源名称并且未指定默认驱动程序_SQLSERVER 链接 MYSQL 的 两种方法 及 未发现数据源名称并且未指定默认驱动程序 处理办法...
  10. vim代码对齐命令_vim自动对齐
  11. java保存视频到本地
  12. c语言免杀程序源码,ghost源码免杀教程 步
  13. 阿里矢量图标(字体图标)
  14. 十八、基础教程-钻取功能(drilldown)
  15. Lync部署之Lync Mobile服务器端的外网设置
  16. Seraph‘s Last Stand(塞拉弗的最后一站)技能翻译
  17. Excel如何快速统计某列数据出现次数
  18. 如何在游戏中设置游戏的帧率和显示帧率
  19. 隐藏实用的GitHub使用技巧
  20. TM4C123G学习记录(6)--UART

热门文章

  1. Linux:firewall-cmd管理工具---->开启/关闭防火墙端口号
  2. CDN加速下如何识别和限制访问来源
  3. 171006 逆向-EAT机制
  4. 蓝松短视频SDK, 更新日志
  5. 产品经理基础--02需求收集需求管理
  6. “lib32ncurses5 : Depends: libc6-i386 (>= 2.18) but it is not going to be installed”类似问题解决办法
  7. 类加载器-双亲委派机制
  8. 将centos系统时间修改为上海时区(CST)
  9. 51单片机入门——(新)简易数字时钟
  10. 入门的网络安全常用术语