28.设计模式(工厂、装饰)详解
admin
2024-05-21 04:51:43
0次

目录

一.工厂设计模式

1.1 工厂设计模式的作用

1.2 案例

二.装饰设计模式

2.1 装饰设计模式的作用

2.2 步骤

2.3 案例


一.工厂设计模式

1.1 工厂设计模式的作用

1.对象通过工厂的方法创建返回,工厂的方法可以为该对象进行加工和数据注入。 2.可以实现类与类之间的解耦操作。

1.2 案例

创建一个工厂用于产生需要的对象 工厂代码:
public class FactoryPattern {/**定义一个方法,创建对象返回*/public static Computer createComputer(String info){switch (info){case "huawei":Computer c = new Huawei();c.setName("huawei pro 16");c.setPrice(5999);return c;case "mac":Computer c2 = new Mac();c2.setName("MacBook pro");c2.setPrice(11999);return c2;default:return null;}}
}
测试代码:
public class FactoryDemo {public static void main(String[] args) {Computer c1 = FactoryPattern.createComputer("huawei");c1.start();Computer c2 = FactoryPattern.createComputer("mac");c2.start();}
}

二.装饰设计模式

2.1 装饰设计模式的作用

装饰模式是指创建一个新类,用来包装原始类,从而在新类中提升原来类的功能。

2.2 步骤

1. 定义父类 2. 定义原始类,继承父类,定义功能 3. 定义装饰类,继承父类,包装原始类,增强功能

2.3 案例

需求:模拟Stream流
//父类代码:
public abstract class InputStream {public abstract int read();public abstract int read(byte[] buffer);
}
//原始类代码:
public class FileInputStream extends InputStream{@Overridepublic int read() {System.out.println("低性能的方式读取了一个字节a");return 97;}@Overridepublic int read(byte[] buffer) {buffer[0] = 97;buffer[1] = 98;buffer[2] = 99;System.out.println("低性能的方式读取了一个字节数组:" + Arrays.toString(buffer));return 3;}
}
//装饰类代码:
public class BufferedInputStream extends InputStream{private InputStream is;public BufferedInputStream(InputStream is){this.is = is;}@Overridepublic int read() {System.out.println("提供8KB的缓冲区,提高读数据性能~~~~");return is.read();}@Overridepublic int read(byte[] buffer) {System.out.println("提供8KB的缓冲区,提高读数据性能~~~~");return is.read(buffer);}
}
//测试类代码:
public class DecoratorPattern {public static void main(String[] args) {InputStream is = new BufferedInputStream(new FileInputStream());System.out.println(is.read());System.out.println(is.read(new byte[3]));}
}

上一篇:SQL优化

下一篇:C语言学习笔记-存储类

相关内容

热门资讯

大渡河畔红色地标引游客 标题:赓续长征精神 奋进复兴征程|大渡河畔红色地标引游客国庆假期,各地游客来到位于四川省雅安市石棉县...
滇池东岸美食风物季丨10月6日... 秋日湖畔,音浪不息2026滇池东岸美食风物季持续火热10月6日滇池东岸将带来旷野歌者王金永的昆明专场...
从茶马古道到动车飞驰 松州古城... 四川在线记者王攀 川观新闻阿坝观察 刘文佳松潘县融媒体中心陈孙舟扬王小兰侯明磊10月5日早上8点,松...
从“面朝黄土”到奔赴“诗与远方... 新华社西安10月5日电(记者邹竞一、蔡馨逸)“等忙完这一阵,我就去北京,看天安门!”国庆假期,陕西西...
家国同框 | 佳节乡村游,我在... 朱明 摄家国同框 | 佳节乡村游,我在记录家国同框 | 佳节乡村游,我在记录家国同框 | 佳节乡村游...
双节无障碍文旅升温,多地景区探... 本报(chinatimes.net.cn)记者李氏琼 北京报道“您好,我们这里有免费提供的轮椅,请问...
吕梁碛口景区发布紧急提醒 尊敬的游客朋友:截至目前,碛口景区游客接待量已达到景区上限。为确保游览体验和旅游安全,请广大游客及时...
中英旅游,向文化体验更深处去 在英国泰晤士河畔,议会大厦、大本钟前,举着手机拍照的中国游客络绎不绝。有人拿出封面印有大本钟照片的高...
成都高新区“欢庆国庆·艺彩芳华... 封面新闻记者 易弋力10月5日,由成都高新区商务文化旅游局指导的“欢庆国庆·艺彩芳华”2026年高新...
花溪湖:山水之间见证城市蝶变 如今的花溪湖,波光潋滟,草木环生,已然是市民闲暇时散心休闲的好去处。岁月流转,这片水域迎来全新的蜕变...