摘要: 1 星巴克咖啡订单项目(咖啡馆): 1) 咖啡种类/单品咖啡:Espresso(意大利浓咖啡)、ShortBlack、LongBlack(美式咖啡)、Decaf(无因咖啡) 2) 调料:Milk、Soy(豆浆)、Chocolate 3) 要求在扩展新的咖啡种类时,具有良好的扩展性、改动方便、维护方便 阅读全文
posted @ 2021-02-04 21:12 linzm14 阅读(239) 评论(0) 推荐(0)
摘要: 1 手机操作问题 现在对不同手机类型的不同品牌实现操作编程(比如:开机、关机、上网,打电话等),如图: 2 传统方案解决手机操作问题 传统方法对应的类图 3 传统方案解决手机操作问题分析 1) 扩展性问题(类爆炸),如果我们再增加手机的样式(旋转式),就需要增加各个品牌手机的类,同样如果我们增加一个 阅读全文
posted @ 2021-02-04 19:23 linzm14 阅读(227) 评论(0) 推荐(0)
摘要: 适配器模式 1 现实生活中的适配器例子 泰国插座用的是两孔的(欧标),可以买个多功能转换插头 (适配器) ,这样就可以使用了。 2 基本介绍 1) 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以 阅读全文
posted @ 2021-02-04 16:27 linzm14 阅读(1613) 评论(0) 推荐(0)
摘要: 建造者模式 1 盖房项目需求 1) 需要建房子:这一过程为打桩、砌墙、封顶 2) 房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的. 3) 请编写程序,完成需求. 2 传统方式解决盖房需求 1) 思路分析(图解) 2) 代码 AbstractHouse类 pack 阅读全文
posted @ 2021-02-04 00:09 linzm14 阅读(895) 评论(0) 推荐(1)
摘要: 原型模式 1 克隆羊问题 现在有一只羊 tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和 tom 羊 属性完全相同的 10 只羊。 2 传统方式解决克隆羊问题 1) 思路分析(图解) Sheep类 package com.lin.prototype; public class 阅读全文
posted @ 2021-02-03 13:19 linzm14 阅读(531) 评论(0) 推荐(0)
摘要: 1 工厂模式小结 1) 工厂模式的意义 将实例化对象的代码提取出来,放到一个类中统一管理和维护,达到和主项目的依赖关系的解耦。从而提高项目的扩展和维护性。 2) 三种工厂模式 (简单工厂模式、工厂方法模式、抽象工厂模式) 3) 设计模式的依赖抽象原则 创建对象实例时,不要直接 new 类, 而是把这 阅读全文
posted @ 2021-02-03 03:20 linzm14 阅读(451) 评论(0) 推荐(0)
摘要: 抽象工厂模式 1 基本介绍 1) 抽象工厂模式:定义了一个 interface 用于创建相关或有依赖关系的对象簇,而无需指明具体的类 2) 抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合。 3) 从设计层面看,抽象工厂模式就是对简单工厂模式的改进(或者称为进一步的抽象)。 4) 将工厂抽象成两 阅读全文
posted @ 2021-02-03 03:07 linzm14 阅读(96) 评论(0) 推荐(0)
摘要: 工厂方法模式 1 看一个新的需求 披萨项目新的需求:客户在点披萨时,可以点不同口味的披萨,比如 北京的奶酪 pizza、北京的胡椒 pizza 或者是伦敦的奶酪 pizza、伦敦的胡椒 pizza。 2 思路 1 使用简单工厂模式,创建不同的简单工厂类,比如 BJPizzaSimpleFactory 阅读全文
posted @ 2021-02-03 02:37 linzm14 阅读(95) 评论(0) 推荐(0)
摘要: 简单工厂模式 案例: 披萨的项目(要便于披萨种类的扩展,要便于维护) 1)披萨的种类很多(比如 GreekPizz、CheesePizz 等) 2)披萨的制作有 prepare,bake, cut, box 3)完成披萨店订购功能。 使用传统的方式来完成 编写 OrderPizza.java 去订购 阅读全文
posted @ 2021-02-03 01:33 linzm14 阅读(248) 评论(6) 推荐(0)
摘要: 1)单例模式保证了 系统内存中该类只存在一个对象,节省了系统资源,对于一些需要频繁创建销毁的对象,使用单例模式可以提高系统性能 2)当想实例化一个单例类的时候,必须要记住使用相应的获取对象的方法,而不是使用 new 3)单例模式使用的场景:需要频繁的进行创建和销毁的对象、创建对象时耗时过多或耗费资源 阅读全文
posted @ 2021-02-02 17:01 linzm14 阅读(803) 评论(0) 推荐(0)