设计模式
文章平均质量分 73
stonney
这个作者很懒,什么都没留下…
展开
-
设计模式——状态模式(java)
情景:互联网公司加班,程序根据不同的时间判断程序员不同的状态。面向过程的代码:package state;public class state { static int hour = 0; static boolean workfinished = false; public static void writeprogram(){ if(hour <12){ System.out.println("当前时间:"+hour+"上午工原创 2021-02-28 12:21:19 · 187 阅读 · 2 评论 -
设计模式——抽象工厂模式(java实现)
情景:项目原先是基于sql server数据库,后来要改为access数据库,需要的改动很多。最基本的数据访问程序,实现新增用户和得到用户用户类:package abstractfactory;public class User { private int id; private String name; public int getId() { return id; } public void setId(int id) {原创 2021-02-28 10:51:08 · 275 阅读 · 0 评论 -
设计模式——建造者模式
建造者模式:将一个复杂的对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示product: 要创建的复杂对象builder(抽象建造者):规定要实现的复杂对象的创建,不涉及具体的对象部件的创建concretebuilder:实现builder。针对不同的商业逻辑,具体化复杂对象的各部分创建,在构造完成之后,提供产品的实例。director:调用具体建造者来创建复杂对象的各个部分,在指导者中不涉及具体产品的信息,只负责保证各部分完整创建或按某种顺序创建。举例:车的建造(造车轮,造车身原创 2020-12-17 21:07:06 · 71 阅读 · 0 评论 -
设计模式——外观模式
场景:股票&基金基金将投资者分散的资金集中起来,交由专业的经理人进行管理,投于股票、债券、外汇等领域,而基金投资的收益归持有投资者所有,管理机构收取一定比例的托管管理费用。基金会买几十支好的股票,不会因为某个股票的大跌而影响收益,尽管每个人的钱不多,但大家放在一起,反而会达到好的投资效果。股民炒股代码:股票1:package Facade;public class Stock1 { public void sell(){ System.out.println(原创 2020-12-12 20:23:12 · 49 阅读 · 0 评论 -
设计模式——模板方法模式
场景:抄题目 给出答案第一版程序:学生A抄的试卷类:package template1;public class classpaperA { public void TestQuestion1(){ System.out.println("题目1"); System.out.println("答案:a"); } public void TestQuestion2(){ System.out.println("题目2");原创 2020-12-11 09:56:11 · 605 阅读 · 1 评论 -
设计模式——工厂模式
场景:建立雷锋工厂,学雷锋做好事工厂模式:先将之前用简单工厂实现的计算器改为工厂模式:计算类:package Factory3;public class Operation { public double numA; public double numB; public double getResult(){ return 0.0; }}加法计算类,继承计算类:package Factory3;public class AddOp原创 2020-11-30 20:25:16 · 55 阅读 · 0 评论 -
软件设计模式——代理模式
情景:男生A喜欢女生A,他让男生B送女生A礼物(男生B相当于代理,男生A是追求者,女生A是被追求者)没有代理的代码:被追求者类:package Proxy;public class schoolgirl { private String name; public String getName() { return name; } public void setName(String name) { this.name = name;原创 2020-11-28 23:02:23 · 313 阅读 · 0 评论 -
软件设计模式——装饰模式
写一个可以给人搭配不同服饰的系统。方法一:person类:package decorator0;public class Person { private String name; public Person(String name){ this.name = name; } public void WearTshirts(){ System.out.println("大T恤"); } public void Wear原创 2020-11-24 19:41:28 · 517 阅读 · 0 评论 -
设计模式——策略模式
商场搞活动(打折、满减)先用简单工厂模式实现一遍:收费抽象类:package factory_strategy;public abstract class CashSuper { public double acceptCash(double money){ return 0.0; }}正常收费子类:package factory_strategy;public class CashNormal extends CashSuper { @Over原创 2020-11-22 23:40:39 · 61 阅读 · 0 评论 -
设计模式——简单工厂模式
实现计算器的功能可维护可复用【复制≠复用 编程的原则:用尽可能的办法去避免重复,让计算和显示分开,即让业务逻辑与界面逻辑分开,让耦合度下降,只有分离开,才可以达到容易维护或者扩展】可扩展灵活性好【一】Operation运算类:客户端:使用了封装,但是如果需要添加一个平方根运算,却需要加减乘除的运算都来参与,应该改为修改其中一个不影响另外的几个,增加运算算法也不影响其他代码。【二】Operation运算类(抽象类)package factory;public abstract c原创 2020-11-21 10:09:50 · 163 阅读 · 0 评论 -
设计模式——观察者模式
场景一:老板出门回来的时候,前台秘书给大家打电话,大家马上各就各位,这样就不会被老板发现问题。第一版代码(双向耦合)前台秘书类:package observer1;import java.util.*;public class secretary { private List<observer> observers = new ArrayList<>(); private String action; public void attach(obse原创 2021-01-06 12:00:37 · 138 阅读 · 0 评论 -
设计模式——原型模式
场景:写好多份简历初步实现:工作经历类:package Prototype;import java.io.Serializable;public class workExperience implements Serializable { private String workdate; private String workCompany; public String getWorkdate() { return workdate; }原创 2020-12-09 11:36:49 · 58 阅读 · 0 评论