随笔分类 - 设计模式
摘要:智能生活项目需求 1、我们买了一套智能家电,有照明灯、风扇、冰箱、洗衣机,我们只要在手机上安装app就可以控制对这些家电工作。这些智能家电来自不同的厂家,我们不想针对每一种家电都安装一个App,分别控制,我们希望只要一个app就可以控制全部智能家电。 2、要实现一个app控制所有智能家电的需要,则每
阅读全文
摘要:豆浆制作问题 编写制作豆浆的程序,说明如下: 1、制作豆浆的流程选材 添加配料 浸泡 放到豆浆机打碎; 2、通过添加不同的配料,可以制作出不同口味的豆浆; 3、选材、浸泡和放到豆浆机打碎这几个步骤对于制作每种口味的豆浆都是一样的; 模板方法模式 基本介绍 1、模板方法模式(Template Meth
阅读全文
摘要:代理模式 基本介绍 1、代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象。这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。 2、被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象;代理模式有不同的形式,主要有 三
阅读全文
摘要:展示网站项目需求 小型的外包项目,给客户A做一个产品展示网站,客户A的朋友感觉效果不错,也希望做这样的产品展示网站,但是要求都有些不同: 1、有客户要求以新闻的形式发布; 2、有客户人要求以博客的形式发布; 3、有客户希望以微信公众号的形式发布。 传统方案 1、直接复制粘贴一份,然后根据客户不同要求
阅读全文
摘要:影院管理项目需求 组建一个家庭影院:DVD播放器、投影仪、自动屏幕、环绕立体声、爆米花机,要求完成使用家庭影院的功能,其过程为: 直接用遥控器:统筹各设备开关 开爆米花机 放下屏幕 开投影仪 开音响 开DVD,选dvd 去拿爆米花 调暗灯光 播放 观影结束后,关闭各种设备 传统方式解决影院管理 传统
阅读全文
摘要:学校院系展示需求 展示一个学校院系结构:要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系。 传统解决方案 将学院看做是学校的子类,系是学院的子类,这样实际上是站在组织大小来进行分层次的, 实际上的要求是 :在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系
阅读全文
摘要:星巴克咖啡订单项目 咖啡馆: 1、咖啡种类/单品咖啡:Espresso(意大利浓咖啡)、ShortBlack、LongBlack(美式咖啡)、Decaf(无因咖啡); 2、调料:Milk、Soy(豆浆)、Chocolate; 3、要求在扩展新的咖啡种类时,具有良好的扩展性、改动方便、维护方便; 4、
阅读全文
摘要:手机操作问题 现在对不同手机类型的不同品牌实现操作编程(比如:开机、关机、上网,打电话等),如图: 传统解决方案 从功能上来说,这样设计是可以的。但是,若是增加一种新的样式,那么同样的它也会新增不同品牌手机的子类,这样就会导致类爆炸的问题。 传统方案解决手机操作问题分析: 1、扩展性问题(类爆炸),
阅读全文
摘要:泰国旅游使用插座问题 泰国插座用的是两孔的(欧标),可以买个多功能转换插头(适配器),这样就可以使用了。 适配器模式 基本介绍 1、适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名
阅读全文
摘要:盖房项目需求 1、需要建房子:这一过程为打桩、砌墙、封顶; 2、房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的; 3、请编写程序,完成需求。 传统方式 1、房子类 房子抽象父类: 普通房子: 高楼: 2、Client类 传统方式解决盖房需求问题的优缺点分析: 优
阅读全文
摘要:克隆羊项目需求 现在有一只羊tom,姓名为: tom,年龄为:1,颜色为:白色,请编写程序创建和tom羊属性完全相同的10只羊。 传统方式 1、Sheep类 2、客户端代码 传统的方式的优缺点: 1、优点是比较好理解,简单易操作。 2、 在创建新的对象时,总是需要重新获取原始对象的属性,如果创建的对
阅读全文
摘要:披萨项目需求 披萨项目新的需求:客户在点披萨时,可以点不同口味的披萨,比如北京的奶酪pizza、北京的胡椒pizza或者是伦敦的奶酪pizza、伦敦的胡椒pizza。 抽象工厂模式 1、抽象工厂模式:定义了一个interface用于创建相关或有依赖关系的对象簇,而无需指明具体的类; 2、抽象工厂模式
阅读全文
摘要:披萨项目需求 披萨项目新的需求:客户在点披萨时,可以点不同口味的披萨,比如北京的奶酪pizza、北京的胡椒pizza或者是伦敦的奶酪pizza、伦敦的胡椒pizza。 按照简单工厂模式,可以创建不同的简单工厂类,比如BJPizzaSimpleFactory、LDPizzaSimpleFactory等
阅读全文
摘要:披萨项目需求 萨的项目:要便于披萨种类的扩展,要便于维护。 1、披萨的种类很多(比如GreekPizz、CheesePizz等); 2、披萨的制作有prepare,bake, cut, box; 3、完成披萨店订购功能。 传统方式 1、我们将Pizza类相同的方法实现,将不同的方法做成抽象方法,由具
阅读全文
摘要:所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。 比如Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量级的,
阅读全文
摘要:设计模式的目的:编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件),具有更好的: 1、代码重用性 :相同功能的代码,不用多次编写; 2、可读性 :编程规范性,便于其他程序员的阅读和理解 3、可扩展性 :当需要增加新的功能时
阅读全文

浙公网安备 33010602011771号