思路分析
总思路:接口 接口实现类 组装打印机 接口就是提供方法的 你需要什么我给你提供什么 实现类具体实现接口方法
打印机需要什么?需要墨盒色彩的选择吧 ,黑白的 、彩色的 需要纸张大小吧 你要A4纸张还是B5纸张
因此得出结论需要确定墨盒颜色、纸张大小:如何实现 墨盒、纸张呢 通过接口定义方法 再由他们的实现类去实现各自的方法吧
我打印机就像是经理 我不需要真正的干活 我只要把那两手下弄好的拿过来 也叫组装打印机 然后启动我独有的打印功能 打印出来就好了 。把打印机在注入spring配置文件 ApplicationContext 读取出来 通过getBean()获取到组装打印机 调用其打印方法即可。
接口分析
墨盒接口 Ink 他需要实现什么功能呢 定义打印采用的颜色的方法 写法如下
public String getColor(int r ,int g ,int b);墨盒实现类 因为前面说了 要彩色墨盒 黑白墨盒 所以两个都要实现各自打印需要的颜色
所以都是 定义颜色 引入Color 返回颜色 记得加# 因为颜色是 #0033fA这种形式的
即 return “#”+Integer.toHexString(color.getRGB()).substring(2);
其中 tohexstring()就是16进制显示 说白了上面就是:将RGB颜色值转换为十六进制
ColorInk 彩色墨盒实现类
public class ColorInk implements Ink{
public String getColor(int r, int g, int b) {
Color color = new Color(r, g, b); return "#"+Integer.toHexString(color.getRGB()).substring(2); }}
GreyInk灰色墨盒实现类
public class GreyInk implements Ink {
public String getColor(int r, int g, int b) {
int c = r+g+b; Color color = new Color(c); return "#"+Integer.toHexString(color.getRGB()).substring(2); }}
接口实现类
纸张接口 Paper 接口要写什么方法、 属性啊 取决于你将来可能需要什么方法 、属性 纸能干嘛 ?
先看需要什么属性 我需要换行处理吧 (windows:\r\n(换行) 定义newline 到时候其他地方的调用 所以的静态
纸肯定是来接收文字的 这里叫char 字符 对吧 肯定是一个一个字符接收得吧!最后汇总得到内容对吧
应该提供什么方法 1.输出一个字符到纸张 2.得到输出到纸张上的内容
public interface Paper {
public static final String newLine = "\r\n";//换行// 输出一个字符到纸张 public void InPutChar(char c); // 得到输出到纸张上的内容 public String getContent();}