- JDK1.8+
- JUnit 5
- 我需要一个Length来比较大小,比如1跟1,2跟2,3跟3比较大小
- 增加单位,相同单位进行比较,不同单位不比较,比如1m == 1m,10cm == 10cm,显示的时候也需要展示单位
- 增加单位换算,支持换算比较,比如 1m = 100cm
- 有一个长方形,可以设置宽和高,也可以获取宽和高,可以求面积
- 有一个正方形,可以设置宽和高,也可以获取宽和高,可以求面积
- 有一个客户要改变长方形的宽,条件是:当宽小于或等于高的时候,就将宽加1,直到宽大于高的时候停止
- 有一只鸟,它可以飞,每飞一次,它离地面的高度就会增加一米。
- 有一只企鹅,它也能飞,每飞行一次,它会向前进一米。
- S:Single Responsibility Principle
- O:Open/Close Principle
- L:Liskov Substitution Principle
- I:Interface Segregation Principle
- D:Dependency Inversion Principle
需求1:客户需要一个字符串处理器,它能将固定日期格式的字符串(2019-01-19)去掉中间的符号-,还能统计非日期格式的字符串中的每个字符的出现次数,另外,该处理器还能将字符串的转换前后结果打印到控制台上
开发组设计了一个工具类,提供了convert
和print
两个方法,请编写一个Client
类描述对该处理器的使用
请基于已有的功能,做出修改或扩展,完成该需求。
开发组设计了一个Rectangle
类,有setWidth
和setHeight
方法,提供了能够一个calculateArea
方法
正方形是一个特殊的长方形,于是新建一个Square
类,让其继承Rectangle
类
这种设计存在坏味道,请你找出坏味道,并分析原因,给出你们的设计方案?
开发组设计了一个interface HumanAble
,包含了上述5个方法,并在BabyClient
类中描述了使用方式。
请你基于之前的设计进行修改或扩展,完成客户的新需求,并在AdultClient
类中描述使用方式。
开发组已经设计了Item
和OrderReceiptHandler
类,并且在OrderReceiptHandler
中使用了使用了普通格式的打印器PlaintPrinter
进行打印
请你设计一个新的XML打印器来满足客户需求,你可以基于原来的程序进行修改或扩展。
请你设计一个新的HTML打印器来满足客户需求,你可以基于原来的程序进行修改或扩展。