![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文天哥哥
比你有钱的人比你还努力
展开
-
命令模式---烧烤点单
有一个烧烤城,有两个摊位,一个摊位是烤鱼的,另外一个摊位可以烤肉串,也可以烤鸡翅。顾客不直接去摊位点食物,而是告诉服务员想吃什么,服务员去摊位下单并把烤好的食物拿给顾客。请用命令模式模拟这个过程。Command.javapackage BBQ;public abstract class Command { public abstract void getFish(); pu...原创 2019-04-10 12:35:47 · 1536 阅读 · 0 评论 -
模板方法模式---豆浆机
现在我们很多家庭都有了豆浆机,豆浆的营养价值不用我多说了。制作豆浆的程序简单点来说就是选材—>添加配料—>浸泡—>放到豆浆机打碎,通过添加不同的配料,可以制作出不同口味的豆浆,但是选材(有的人懒得做这一步)、浸泡和放到豆浆机打碎这几个步骤对于制作每种口味的豆浆都是一样的。SoyaMilk.javapackage Soya;public abstract class ...原创 2019-04-30 10:21:36 · 807 阅读 · 0 评论 -
观察者模式---英雄联盟
在某多人联机对战游戏中,多个玩家可以加入同一战队组成联盟,当战队中的某一成员受到敌人攻击时将给所有其他盟友发送通知,盟友收到通知后将做出响应。 现使用观察者模式设计并实现该过程,以实现战队成员之间的联动。Subject.javapackage Game;import java.util.ArrayList;public abstract class Subject { prot...原创 2019-04-20 15:29:35 · 3003 阅读 · 0 评论 -
桥接模式---汽车导航
汽车品牌内置导航仪,我们希望实现,每个品牌的导航仪都可以在任何一个牌子的汽车上安装并启动。汽车品牌有两个:宝马、奔驰。导航仪有三个牌子:神行者、北斗、高德AbstractVehicleBrand.javapackage car;public abstract class AbstractVehicleBrand { public abstract void install...原创 2019-04-29 15:21:41 · 914 阅读 · 0 评论 -
外观模式---寄信
Iletterprocess.javapackage PostCard;public interface Iletterprocess { public void writecontext(String context); public void fillenvelope(String address); public void letterintoenve...原创 2019-04-29 15:10:46 · 850 阅读 · 0 评论 -
命令模式---电视机遥控器
电视机是请求的接收者,遥控器是请求的发送者,遥控器上有一些按钮,不同的按钮对应电视机的不同操作。抽象命令角色由一个命令接口来扮演,有三个具体的命令类实现了抽象命令接口,这三个具体命令类分别代表三种操作:打开电视机、关闭电视机和切换频道。显然,电视机遥控器就是一个典型的命令模式应用实例。Command.javapackage TVCmd;public abstract class...原创 2019-04-20 14:11:39 · 4201 阅读 · 1 评论 -
代理模式---论坛权限控制代理
论坛权限控制代理 在一个论坛中已注册用户和游客的权限不同,已注册的用户拥有看帖、发帖、修改自己的帖子等功能;而游客只能看帖,没有其他权限。使用代理模式来设计该权限管理模块。 在本实例中我们使用代理模式中的保护代理,该代理用于控制对一个对象的访问,可以给不同的用户提供不同级别的使用权限。BBS.javapackage bbsProxy;public interface BBS { p...原创 2019-04-20 12:41:00 · 4529 阅读 · 1 评论 -
设计模式---期末复习
第一题:有一个冰淇淋机,可以生产香草、草莓和巧克力口味的冰淇淋,而冰淇淋所用奶油分国产和进口两种。public interface DomesticIceCream { public void taste(); } public interface ImportedIceCream { public void taste(); ...原创 2019-04-29 14:09:50 · 2705 阅读 · 0 评论 -
抽象工厂模式---冰淇淋
冰淇淋有进口和出口两种渠道获得,口味也有苹果味和香蕉味。IceCreamFactory.javapackage ice;public abstract class IceCreamFactory { public abstract DomesticIceCream produceDomesticIceCream(); public abstract...原创 2019-04-29 14:01:35 · 1150 阅读 · 0 评论 -
模板方法模式---榨汁机
现在我们很多家庭都有了榨汁机。榨汁的过程大体上为水果切片-->放入榨汁机-->加入调味料-->启动。可根据需要加入蜂蜜或苏打水,也可以什么调料都不加,制作纯果汁。请用模板方法模拟这个过程AbstractClass.javapackage Fruit;public abstract class AbstractClass { public void primitiv...原创 2019-04-24 16:32:24 · 3039 阅读 · 0 评论 -
代理模式---日志模块
某应用软件需要记录业务方法的调用日志,在不修改现有类的基础上,记录业务方法method()的调用次数,并在method()调用之前输出调用时间。请用代理模式来设计日志模块的结构Service.javapackage demo;public interface Service { public void method();}RealService.javapackage...原创 2019-04-14 14:06:05 · 1784 阅读 · 0 评论 -
装饰模式---早餐加料
有一个小吃店,餐牌如下: 素面 10元 加牛肉 5元 素粉 9元 加猪肉 3元 加蛋 2元 Breakfast.javapackage Eat;public abstract class Breakfast { String name...原创 2019-04-09 11:03:06 · 1057 阅读 · 0 评论 -
外观模式---教室按钮
使用外观模式实现教室设备的统一操作,包括上课和下课两个按钮,设备包括电脑、幕布、投影仪、话筒、黑板灯。BoardLight.javapackage ClassroomButton;public class BoardLight { String name="黑板灯"; public String getName() { return name; } public v...原创 2019-04-09 10:45:10 · 930 阅读 · 0 评论 -
抽象工厂模式---游戏等级
有一款游戏软件,分为与电脑对战和与人对战两种玩法,而每种玩法又分简易操作和复杂操作两种,假设现在需要你根据选择的情况创建具体的游戏对象,你会采用什么样的工厂模式进行设计,请给出设计方案。Game.javapackage Gaming;public interface Game { public Computer creatComputer(); public People ...原创 2019-04-09 10:31:48 · 2032 阅读 · 1 评论 -
简单工厂模式---女娲造人
传递指令给女娲,"M"制造男人,“W”制造女人。People.javapackage MakePeople;public interface People { public void makePeople();}Man.javapackage MakePeople;public class Man implements People { @Ov...原创 2019-04-09 10:19:40 · 5389 阅读 · 0 评论 -
策略模式---打印机
某公司专门销售各种打印机,销售打印机时都有一定的折扣让利给顾客,但折扣计算的方法有很多种,如:不打折;每台减扣固定的金额;按售价的5%打折等等,且折扣计算方法可能发生变化。现在要开发该公司的销售系统,实现打印机销售时的价格计算。Context.javapackage Printer;public class Context { private Strategy str; ...原创 2019-04-30 10:54:05 · 1790 阅读 · 0 评论