自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 设计模式(Java)----访问者模式Visitor

例题:校长和院长检查教师和学生校长和院长检查教师的工作情况和学生的学习情况,校长关注教师的教学工作量,学生学习的课程;院长关注教师的课程,学生的学习成绩。由于校长和院长对于教师和学生的关注点是不一样的,这就需要对教师和学生进行不同的处理教师的工作和学生的学习相对稳定,访问者和处理方式多种多样。如何在不更改数据元素结构(教师的工作和学生的学习)的前提下,在运行时根据需要透明地为其动态添加新的操作?import java.util.ArrayList;import java.util.List

2020-06-13 17:00:20 207

原创 设计模式(Java)----命令模式Order

例题1:在街边的烧烤摊点餐场景:直接和老板说需要点什么class Barbecuer{ //烤羊肉 public void BakeMutton() { System.out.println("烤羊肉串!"); } //烤鸡翅 public void BakeChickenWing() { System.out.println("烤鸡翅!"); }}public class Main{ public static void main(String[] args){ Ba

2020-06-09 18:30:42 277

原创 设计模式(Java)----职责链模式Chain of Responsibility

定义:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿这条链传递请求,直到有一个对象处理它为止。例题:加薪申请、上报与审批员工向经理发起加薪申请,经理无权决定,需要向总监汇报,如果加薪额度超过总监权力范围,需要向总经理汇报。员工还可以提交请假申请,经理可以决定2天以下的假,总监可以决定5天以下的假,其余都要上报总经理。加薪代码初步//申请:小菜请求加薪2000/小菜请假3天class Request{ private String reques

2020-06-09 17:37:22 180

原创 设计模式(Java)----组合模式Composite

例题:商品类别树+服装 +男装 -衬衣 -夹克 +女装 -裙子 -套装特点:1、有一个根节点2、树枝节点3、叶子结点根节点和树枝节点都可以包含其他节点,统称为容器节点。现在需要管理商品类别树,假设要求能实现输出如上商品类别树的结构功能,应该如何实现?不带模式的解决方案:组合对象import java.util.ArrayList;import java.util.Collection;class Leaf{ private Strin...

2020-06-03 15:08:16 166

原创 设计模式(Java)----备忘录模式Memento

例题:游戏进度遇到大boss的时候都会保存一下进度:游戏角色的生命力,攻击力,防御力等的数据。如果:打过了就不需要恢复记录,打不过就复原到刚刚保存的记录重新打一遍boss,直到打死为止。class GameRole{ int Vitality;//体力 int Attack;//攻击力 int Defense;//防御力 public int getVitality() { return Vitality; } public void setVitality(int vitalit

2020-06-03 13:18:48 166

原创 设计模式(Java)----状态模式State

人、事物在不同状态下会有不同表现,而一个状态又会在不同的表现下转移到下一个不同的状态。例题:工作状态的变化上午状态好,中午想睡觉,下午渐恢复,加班苦煎熬。class Work{ private int hour; private Boolean finish=false; public int getHour() { return hour; } public void setHour(int hour) { this.hour = hour; } public Boolea

2020-05-28 20:17:56 181

原创 设计模式(Java)----观察者模式Observer

问题引入:办公时间做与工作无关的事情,在老板到来时,前台负责通知好友进入工作状态.import java.util.ArrayList;class Secretary{//前台秘书类 private ArrayList<StockObserver>observers=new ArrayList<StockObserver>(); private String action; public void Attach(StockObserver observer) { o

2020-05-28 19:33:08 227

原创 设计模式(Java)----模板方法模式Template Method

例题:标准化考试,考试题目相同,每个人的解答不同。class TestPaper{ public void TextQuestion1() { System.out.println("问题一"); System.out.println("答案:"+Answer1()); } public void TextQuestion2() { System.out.println("问题二"); System.out.println("答案:"+Answer2()); } public

2020-05-14 16:33:48 119

原创 设计模式(Java)----策略模式Strategy Pattern

例题:做一个商场收银软件,营业员根据客户购买商品单价和数量,向客户收费。import java.util.Scanner;class Cash{ public String list=""; public Double totalPrice=0.00; public void buttonOK() { Scanner sc=new Scanner(System.in); System.out.println("输入单价:"); String price=sc.nextLine

2020-05-14 16:27:22 246

原创 设计模式(Java)----装饰模式Decorator

如何使“对象功能的扩展”能够根据需要来动态地实现?同时避免“扩展功能的增多”带来的子类膨胀问题?从而使得任何“功能扩展变化”所导致的影响降为最低?例题1:人及其属性人有不同国家,如中国人、美国人,如果有属性:高和富,则有组合: 高、富、高富等共3个属性描述。如果有属性:高、富、帅,则有组合:高、富、帅、高富、高帅、富帅、高富帅等共7个属性描述。???? + ???? + ???? ∗ ???????????? + ????????????...

2020-05-07 14:42:24 167

原创 设计模式(Java)----桥接模式Bridge

本质:分离抽象和实现例题:手机都有通讯录和游戏功能,M品牌手机和N品牌手机都有通讯录的增删改查功能和游戏功能。手机品牌和手机软件之间的关系是手机品牌包含有手机软件,但软件并不是品牌的一部分,所以它们之间是聚合关系。先来解释一个名词:脱耦1、耦合:两个实体的行为的某种强关联。将它们的强关联去掉,就是耦合的解脱,或称脱耦。在这里,脱耦是指将抽象化和实现化之间的耦合解脱开,或者说...

2020-04-30 10:52:38 148

原创 设计模式(Java)----中介者模式Mediator

定义:用一个中介对象来封装(封装变化)一系列的对象交互中介者使各对象不需要显式的相互引用(编译时依赖→运行时依赖),从而使其耦合松散(管理变化),而A可以独立地改变它们之间的交互。,而是通过中介者对象来与另一个对象发生相互作用。通过中介者模式,可以将复杂关系的网状结构变成结构简单的以中介者为核心的星形结构,每个对象不再和他与之关联的对象直接发生相互作用,而是通过中介者对象来与另一个对象发生相互...

2020-04-30 10:42:25 116

原创 设计模式(Java)----适配器模式Adapter

适配器模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起一作。适配者adaptee:需要适配的类。适配器模式的两种形式:类适配器模式:适配器与适配者之间是继承(或实现)关系。对象适配器模式:适配器与适配者之间是关联关系。下面主要介绍对象适配器模式:客户端需要调用request()方法, 而适配者类Adaptee没有该方...

2020-04-24 10:36:09 137 1

原创 设计模式(Java)----外观(门面)模式Facade Pattern

外观模式:为子系统中的一组接口提供一个一致(稳定)的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用(复用)。例题:投资者买股票VS基金由于众多投资者对众多股票的联系太多,反而不利于操作,而有了基金以后,变成众多用户只和基金打交道。实际上的操作却是基金经理人在与上千支股票和其他投资产品打交道。class Stock1{ //卖股票 public vo...

2020-04-24 10:32:16 122

原创 设计模式(Java)----代理模式Proxy Pattern

例题1:卓佳易喜欢娇娇,但是娇娇并不认识卓佳易:1.卓佳易给娇娇送花,送巧克力,送洋娃娃2.卓佳易也可以找一个人,让这个人吧鲜花,巧克力和洋娃娃送给娇娇。这是两种方式,但达到的目的是一样的。class SchoolGirl{ private String name; public String getName() { return name; } public void S...

2020-04-24 10:16:10 117

原创 设计模式(Java)----享元模式Flyweight

例题:有多个客户想要使用同样的网站但要求不太一样,有的希望是博客形式的,有的希望是产品图片说明形式的。简单代码实现://网站类class WebSite{ private String name=""; public WebSite(String name) { this.name=name; } public void Use() { System.out.printl...

2020-04-16 16:35:08 142

原创 设计模式(Java)----单例模式Singleton

例题:想要读取配置文件到内存,如何读取?import java.io.IOException;import java.util.Properties;import org.omg.CORBA_2_3.portable.InputStream;class AppConfig{ private String parameterA; private String parameterB...

2020-04-16 15:26:12 117

原创 设计模式(Java)----建造者(生成器)模式Builder

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。①一个对象会有一些重要的性质,在它没有恰当的值之前,对象不能作为一个完整的产品使用。②一个对象的一些性质必须按照某个顺序赋值才有意义。一、用程序画一个小人,要求小人有头、身体、两手、两脚。基本代码import java.awt.*;import java.awt.event.*;class DrawPers...

2020-04-09 17:33:11 112

原创 设计模式(Java)----原型模式Prototype(包含深复制与浅复制)

例题:定义一个简历类,必须有姓名,可以设置性别和年龄,可以设置工作经历。最终需要写三份简历。一、基本代码(我们一开始会想到的代码)class Resume{ private String name; private String sex; private String age; private String timeArea; private St...

2020-04-09 17:00:27 148

原创 设计模式(Java)----抽象工厂模式AbstractFactory

如何访问数据库?基本的数据访问程序class User{ private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id=id; } public String getName() { return name; } ...

2020-04-02 17:45:12 100

原创 设计模式(Java)----工厂方法模式FactoryMethod

如果想对两个数进行算数运算,应该怎样写代码呢?1.简单工厂模式import java.util.*;abstract class Operation{ private double numberA=0; private double numberB=0; boolean flag=true; public double getNumberA() { return numberA...

2020-04-02 16:52:01 85

原创 设计模式(Java)----七大面向对象设计原则

一.单一职责原则单一职责原则对类来说,即一个类应该只负责一项职责。主要根据不同的角度划分职责,比如,1、从类的组成,划分为属性操作和行为操作两种。2、从数据库操作的不同作用,划分为数据库的连接操作和增删改查基本操作。原例:class Vehicle{public void run(String vehicle) {System.out. println(vehicle + "在公路...

2020-03-21 17:07:27 171

原创 设计模式(ProcessOn)----如何画uml图? 用ProcessOn在线画图工具

下面主要介绍一下UML类图怎么画一.注释注释就是对类图的补充说明,通过虚线连接被注释的元素。二.类类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示。三.接口在UML中,接口有两种表示方式:1.普通接口表示法(飞翔)。2.棒棒糖表示法(讲人话),使用一个带有名称的小圆圈来表示,在旁边写上相应接口名称,没有具体接口方法。四.类与类之间的关系...

2020-03-10 21:18:34 4232 3

原创 设计模式(ProcessOn)----UML类图 用ProcessOn在线画图工具

以上是我画的第一个UML类图

2020-03-03 20:42:20 688

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除