☀加油^0^~
码龄6年
关注
提问 私信
  • 博客:9,795
    9,795
    总访问量
  • 31
    原创
  • 828,406
    排名
  • 6
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:山东省
  • 加入CSDN时间: 2018-11-22
博客简介:

qq_43774908的博客

查看详细资料
个人成就
  • 获得6次点赞
  • 内容获得5次评论
  • 获得6次收藏
创作历程
  • 31篇
    2020年
成就勋章
TA的专栏
  • 设计模式
    30篇
  • JavaWeb
    1篇
  • java
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

访问者模式Visitor

访问者模式Visitor例题:校长和院长检查教师和学生校长和院长检查教师的工作情况和学生的学习情况校长关注教师的教学工作量,学生学习的课程院长关注教师的课程,学生的学习成绩由于校长和院长对于教师和学生的关注点是不一样的,这就需要对教师和学生进行不同的处理教师的工作和学生的学习相对稳定,访问者和处理方式多种多样。import java.util.ArrayList;import java.util.List; //创建一个人员基类abstract class Person{ pr
原创
发布博客 2020.06.15 ·
246 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

命令( Command )模式

命令( Command )模式命令模式的动机(Motivation)在软件构建过程中,“行为请求者” 与“行为实现者须通常呈现一种“紧耦合”。但在某些场合一比 如需要对行为进行“记录、撤销/重(undo/redo)、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者解耦?将一组行为抽象为对象,可以实现二者之间的松耦合。问题的引入——烧烤摊和烧烤店class Barbecuer { // 烤羊肉 public void BakeMutton() {
原创
发布博客 2020.06.14 ·
244 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

职责链( Chain of Responsibility)模式

职责链( Chain of Responsibility)模式职责链模式动机(Motivation)➢在软件构建过程中,一个请求可能被多个对象处理,但是每个请求在运行时只能有一个接受者,如果显式指定,将必不可少地带来请求发送者与接受者的紧耦合。➢如何使请求的发送者不需要指定具体的接受者?让请求的接受者自己在运行时决定来处理请求,从而使两者解耦。模式定义使多个对象都有机会处理请求,从而避免请求的发送者和.接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。问
原创
发布博客 2020.06.14 ·
328 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

组合(Composite)模式

组合(Composite)模式商品类别树+服装+男装-衬衣-夹克+女装-裙子-套装特点:有一个根节点树枝节点叶子节点现在需要管理商品类别树,假设要求能实现输出如上商品类别树的结构功能,应该如何实现?分析:商品类别树的节点被分成两种,一种是容器节点,另一种是叶子节点。容器节点可以包含其他容器节点或者叶子节点不带模式的解决方案import java.util.ArrayList;import java.util.Collection;
原创
发布博客 2020.06.14 ·
263 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

备忘录模式

备忘录模式游戏进度遇到大boss的时候都会保存一下进度:游戏角色的生命力,攻击力,防御力等的数据。如果:打过了就不需要恢复记录,打不过就复原到刚刚保存的记录重新打一遍boss,直到打死为止。class GameRole{ int Vitality;//体力 int Attack;//攻击力 int Defense;//防御力 public int getVitality() { return Vitality; } public void setVitality(int vitalit
原创
发布博客 2020.06.14 ·
147 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

状态(State)模式

状态(State)模式状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的逻辑简化。人、事物在不同状态下会有不同表现,而一个状态又会在不同的表现下转移到下一个不同的状态。例题:工作状态的变化上午状态好,中午想睡觉,下午渐恢复,加班苦煎熬。class Work{ private int hour; private Boolean finish=false; public int getHour() { re
原创
发布博客 2020.06.14 ·
259 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

观察者模式

观察者模式办公时间做与工作无关的事情在老板到来时,前台负责通知好友进入工作状态注意开放-封闭原则,依赖倒转原则,降低耦合性。import java.util.ArrayList;class Secretary{//前台秘书类 private ArrayList<StockObserver>observers=new ArrayList<StockObserver>(); private String action; public void Attach(Stoc
原创
发布博客 2020.06.12 ·
170 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

策略模式

策略模式策略模式动机( Motivation )➢在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。➢如何在运行时根据霄要透明地更改对象的算法?将算法与对象本身解耦,从而避免上述问题?1.商场收银软件做一个商场收银软件,营业员根据客户购买商品单价和数量,向客户收费输入单价和数量,算出每种商品的小计,记录商品的清单,记录总计...
原创
发布博客 2020.06.12 ·
137 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

模板方法模式

模板方法模式准备一个抽象类,将部分逻辑以具体方法以及具体子类的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模版方法模式的用意。package mubanfangfa;import java.io.Console;public class Main { public static void main(String[] args) { // TODO Auto-generated method st
原创
发布博客 2020.06.11 ·
127 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

装饰模式

装饰模式装饰模式的动机(Motivation)➢在某些情况下我们可能会“过度地使用继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多子类的膨胀。➢如何使“对象功能的扩展”能够根据需要来动态地实现?同时避免“扩展功能的增多”带来的子类膨胀问题?从而使得任何“功能扩展变化”所导致的影响...
原创
发布博客 2020.05.01 ·
173 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

手机软件何时统一——桥接模式

桥接模式桥接模式的动机(Motivation )➢由于某些类型的固有的实现逻辑,使得它们具有两个乃至多个变化的维度。➢如何应对这种“多维度的变化”?如何利用面向对象技术来使得类型可以轻松地沿着两个乃至多个方向变化, 而不引入额外的复杂度?场景描述手机都有通讯录和游戏功能,M品牌手机和N品牌手机都有通讯录的增删改查功能和游戏功能。可以有2种结构结构1:父类是‘手机品牌’,下有‘手机品...
原创
发布博客 2020.04.28 ·
200 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

中介者模式

中介者模式动机(Motivation)➢在软件构建过程中,经常会出现多个对象互相关联交互的情况,对象之间常常会维持一-种复杂的引用关系,如果遇到一些需求的更改,这种直接的引用关系将面临不断的变化。➢在这种情况下,我们可使用一个“中介对象”来管理对象间的关联关系,避免相互交互的对象之间的紧耦合引用关系,从而更好地抵御变化。问题的引入一联合国沟通世界各国生活中处处充斥着“中介者”,比如租房...
原创
发布博客 2020.04.28 ·
131 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

适配器模式

适配器模式动机(Motivation)➢在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是这些现存对象不满足新环境要求的接口。➢如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口?适配器( Adapter)模式变压器( Adapter) :把一种电压变换成另一种电压。美国的生活用电电压是110V,而中国的...
原创
发布博客 2020.04.28 ·
157 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

外观模式

外观模式外观(门面)模式定义为子系统中的一组接口提供一个一致(稳定)的界面,Facade 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用(复用)。问题的引入病人与医院如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与另一个子系统的各个类打交道一样,不是一件容易的事情。可以...
原创
发布博客 2020.04.28 ·
156 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

为别人做嫁衣——代理模式

代理模式场景描述前提:卓贾易喜欢娇娇,但是,娇娇并不认识卓贾易:1.卓贾易给娇娇送花,送巧克力,送洋娃娃2.卓贾易也可以找一个人,让这个人把鲜花,巧克力和洋娃娃送给娇娇。这是两种方式,但达到的目的是一样的。下面看看这两个代码的实现。没有代理的代码//追求者类class Pursuit{ SchoolGirl mm; public Pursuit(SchoolGirl mm) ...
原创
发布博客 2020.04.28 ·
275 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

享元模式

问题的引入不同网站具体数据和模板不同,核心代码和数据库是共享的。假如有如下需求:有多个客户想要使用同样的网站但要求不太一样,有的希望是博客形式的,有的希望是产品图片说明形式的。简单代码实现如下://网站class WebSite{ private String name=""; public WebSite(String name) { this.name=name; } pu...
原创
发布博客 2020.04.14 ·
131 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

单例模式

动机(Motivation)➢在软件 系统中,经常有这样一些特殊的类, 必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率。例子:配置文件import java.io.IOException;import java.io.InputStream;import java.util.Properties;class AppConfig{ private S...
原创
发布博客 2020.04.14 ·
134 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

建造者模式

建造者模式问题的引入——建造 “小人’用程序画一个小人,要求小人要有头、身体、两手、两脚。建造“小人”的过程是稳定的,都需要头身手脚。具体建造的细节不同,有胖瘦高矮等区别。...
原创
发布博客 2020.04.14 ·
145 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

原型(Prototype)模式

原型(Prototype)模式问题的引入———简历类定义一个简历类,必须要有姓名,可以设置性别和年龄,可以设置工作经历,最终需要三份简历。public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Resume a=new Resume("大鸟");...
原创
发布博客 2020.04.12 ·
156 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

抽象工厂模式

抽象工厂模式public class Main { public static void main(String[] args) { // TODO Auto-generated method stub User user=new User(); SqlserverUser su=new SqlserverUser(); su.Insert(user); su.GetUs...
原创
发布博客 2020.04.02 ·
119 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多