架构设计
文章平均质量分 85
bobshute
这个作者很懒,什么都没留下…
展开
-
系统架构设计师提纲
战略级(企业最高管理层)战术级(企业中层经理及其管理部门)操作级(服务型企业的业务部门)事务级(企业的管理业务人员)原创 2022-11-01 00:21:07 · 2088 阅读 · 1 评论 -
设计模式17-责任链模式
1.场景问题解决1.1 场景描述购买请求决策项目介绍决策因素:价格决策级别:组长、部长、副总、总裁考虑扩展性1.2 OO设计1.3 需求变动1.4 带来问题2.用设计模式改进2.1 分析2.2 重新设计[外链图片转存失败(img-oMaIkeOH-1568476001888)(https://raw.githubusercontent.com/bobshute/public...原创 2019-09-14 23:46:59 · 113 阅读 · 0 评论 -
设计模式11-组合模式
1.场景问题解决1.1 场景描述还是餐厅,多个餐厅合并,每个餐厅的菜单实现方式不一样,有的为ArrayList有的为Array.1.2 OO设计参见:10迭代器模式1.3 需求变动增加餐后甜点子菜单,需要改子菜单和原菜单列表中的菜单项同级.原菜单列表中都为MenuItem,而现在还要增加子菜单.要求如下:[外链图片转存失败(img-ALTDnFFQ-1566140566608)(...原创 2019-08-18 23:36:30 · 117 阅读 · 0 评论 -
设计模式24-常见设计模式使用总结
1.三个分类1.1 什么是设计模式模式:在某些场景下,针对某类问题的某种通用解决方案场景:项目环境问题:约束条件,项目目标等解决方案:通用、可以复用的设计,解决约束,达到目标1.2 三个分类创建型模式:对象实例化的模式,创建型模式解耦了对象的实例化过程结构型模式:把类或对象结合在一起形成更大的结构行为型模式:类和对象如何交互,及划分责任和算法1.3 模式总结简...原创 2019-09-21 23:14:42 · 140 阅读 · 0 评论 -
设计模式23-访问者模式
1.场景问题解决1.1 场景描述雇员管理系统遇到的问题:需要添加一些新的操作功能1.2 OO设计oo 该package为oo用法Employee 为雇员信息Employees 为对每个雇员信息操作类MainOOTest 为测试类public class Employee { private String name; private float in...原创 2019-09-20 23:11:12 · 97 阅读 · 0 评论 -
设计模式22-原型模式
1.场景问题解决1.1 场景描述电子账单项目遇到的问题:银行的电子账单、广告信:特点:量大、时间要求紧,在电子账单内容生成后,快速发送成功.1.2 OO设计多线程实现EventTemplate 为公用对象public class EventTemplate { private String eventSubject, eventContent; public EventTe...原创 2019-09-19 23:24:07 · 121 阅读 · 0 评论 -
设计模式7-适配器模式
1.场景问题解决1.1 场景描述电源插头不适配,可以转换,需要适配器;火鸡和鸭子需要适配转换.1.2 OO设计1.3 需求变动1.4 带来问题2.用设计模式改进2.1 分析2.2 重新设计-对象适配器(火鸡和鸭子的适配器)2.2.1 概述类适配器:通过多重继承目标接口和被适配者类方式来实现适配,讲被适配的对象传进去(构造方法)2.2.2 源码interface Duck和...原创 2019-08-12 23:50:02 · 127 阅读 · 0 评论 -
设计模式8-外观模式
1.场景问题解决1.1 场景描述1.2 OO设计1.3 需求变动1.4 带来问题2.用设计模式改进2.1 分析2.2 重新设计Popcorn,Screen,Projector,DVDPlayer//爆米花public class Popcorn { private static Popcorn instance = null; private Popcorn() {...原创 2019-08-15 23:30:16 · 99 阅读 · 0 评论 -
设计模式6-命令模式
1.场景问题解决1.1 场景描述智能家居项目.家里有电灯,音箱,电视等子设备,有各自的开关接口.现需要一个:总的开关设备,将所有的家居都能控制起来.1.2 OO设计if,else判断,或者Case when处理.1.3 需求变动如果增加新或修改设备,就要修改总开关设备.1.4 带来问题要求总开关设备:扩展性好、维护性好.当前oo设计耦合性强.2.用设计模式改进2.1 分析...原创 2019-08-11 23:26:23 · 126 阅读 · 0 评论 -
设计模式12-状态模式
1.场景问题解决1.1 场景描述糖果售卖机,状态有售完0,待机1,已投币2,给糖果3.1.2 OO设计糖果售卖机public class CandyMachine { final static int SoldOutState = 0; final static int OnReadyState = 1; final static int HasCoin = 2; fina...原创 2019-08-23 23:57:55 · 103 阅读 · 0 评论 -
设计模式4-单例模式
1.场景问题解决1.1 场景描述有些对象我们只需要一个:线程池、缓存、硬件设备等如果多个实例会有造成冲突、结果的不一致性等问题2.用设计模式改进2.1 源码2.1.1 饿汉式单例模式/** 饿汉式单例模式-不会出现线程安全模式 */public class SingletonHunger { // 私有化构造方法 private SingletonHunger () {...原创 2019-06-24 23:45:40 · 114 阅读 · 0 评论 -
设计模式5-工厂模式(简单工厂、工厂方法、抽象工厂)
1.场景问题解决1.1 场景描述披萨商店,可以生产各种披萨.2.用设计模式改进2.1 简单工厂2.1.1 概述思路将变化的会有if else判断的相关模块,单独提到一个专门处理的类中(简单工厂).简单工厂模式: 定义了一个创建对象的类,由这个类来封装实例化对象的行为2.1.2 代码示例abstract class Pizza (Pizza抽象类)public abstra...原创 2019-07-01 23:55:56 · 134 阅读 · 0 评论 -
设计模式3-装饰者模式
1.场景问题解决咖啡厅组合咖啡本体和配料.1.1 场景描述咖啡单品----:Decaf(无咖啡因),Espresso(浓咖啡),LongBlack(深黑咖啡),ShortBlack(浅黑),价格各不同咖啡调料----:Milk(牛奶),mocha(摩卡),chocolate(巧克力),价格各不同以上单品为一份,然后调料可以自由组合,最终计算出咖啡的金额1.2 OO设计继承–&g...原创 2019-06-21 23:57:25 · 165 阅读 · 0 评论 -
设计模式2-观察者模式
1.场景问题解决气象站场景,合作方有提供气象数据变化的接口,然后需要气象数据变更的时候及时同步到自己的布告板上.1.1 场景描述Internet气象站项目,需要实现一下功能:1)提供温度、气压和湿度的接口2)测量数据更新时需时时通知给第三方 3)需要设计开放型API,便于其他第三方公司也能接入气象站获取数据1.2 OO设计1.2.1 设计类图1.2.2 代码/**...原创 2019-05-29 23:32:03 · 157 阅读 · 0 评论 -
设计模式9-模板模式
1.场景问题解决1.1 场景描述1.2 OO设计1.3 需求变动1.4 带来问题2.用设计模式改进2.1 分析2.2 重新设计2.3 源码-不带HookDrink(模板抽象类)public abstract class Drink { final void prepareRecipe() { boilWater(); brew();...原创 2019-08-16 23:50:55 · 92 阅读 · 0 评论 -
设计模式10-迭代器模式
1.场景问题解决1.1 场景描述两个菜馆合并后的菜单问题. 一个蛋糕店,一个小餐厅,原本各自有各自的菜单,一个为List,一个为Array,合并后出一份菜单.1.2 OO设计MenuItempublic class MenuItem { private String name,description; private boolean vegetable; private flo...原创 2019-08-17 23:13:53 · 123 阅读 · 0 评论 -
设计模式21-备忘录模式
1.场景问题解决1.1 场景描述讨论一个游戏进度状态保存问题游戏进度保存:对象状态,场景…,需要安全性,不能被非保存人读取到如果在不使用数据库的情况下,怎么设计1.2 OO设计保存在数据库中1.3 需求变动1.4 带来问题2.用设计模式改进2.1 分析[外链图片转存失败(img-4IaLCwOf-1568819792579)(https://raw.githubusercon...原创 2019-09-18 23:16:49 · 84 阅读 · 0 评论 -
设计模式20-中介者模式
1.场景问题解决1.1 场景描述智慧房屋公司的产品:闹钟、咖啡机、电视机、窗帘等思考如何设计:各对象有几种状态改变相互作用如何1.2 OO设计1.3 需求变动1.4 带来问题2.用设计模式改进2.1 分析2.2 重新设计[外链图片转存失败(img-ik9VrvMn-1568733708520)(https://raw.githubusercontent.com/bobsh...原创 2019-09-17 23:22:02 · 94 阅读 · 0 评论 -
设计模式19-解释器模式
1.场景问题解决1.1 场景描述大数据统计项目遇到的问题:按照计算模型对现有数据统计、分析、预测一般的计算模型是一个或多个运算公式,通常是加减乘除四则运算计算模型需要运行期编辑设计方案要有高扩展性1.2 OO设计1.3 需求变动1.4 带来问题2.用设计模式改进2.1 分析计算模型按正常算术方式书写,解释器处理语法逻辑计算模型里有两类符号:数据和计算符用逆波兰算法分析算...原创 2019-09-16 23:46:47 · 102 阅读 · 0 评论 -
设计模式18-蝇量(享元)模式
1.场景问题解决1.1 场景描述1.2 OO设计1.3 需求变动1.4 带来问题2.用设计模式改进2.1 分析大量的微小的对象,对象属性拆开-内部属性和外部属性拆开;比如树对象,普通设计为:有一个集合存储树对象,每个对象有其对应的横坐标,纵坐标,及年龄 .而蝇量模式为: 多个集合(每个集合长度一样),第一个集合保存所有虚拟树对象,第二个保存所有树的横坐标,第三个保存树的所有纵坐标...原创 2019-09-15 23:44:41 · 162 阅读 · 0 评论 -
设计模式16-生成器模式
1.场景问题解决1.1 场景描述度假计划生成项目设计度假计划的因素:时间、门票、餐厅、住宿、特殊活动等一个计划就是一个具体对象,要便于扩展,可以一日游,三日游,七日游等1.2 OO设计1.3 需求变动1.4 带来问题2.用设计模式改进2.1 分析2.2 重新设计[外链图片转存失败(img-86g1yhCE-1568389284434)(https://raw.githubus...原创 2019-09-13 23:41:36 · 144 阅读 · 0 评论 -
设计模式15-桥接模式
1.场景问题解决1.1 场景描述遥控器项目:电视厂商在电视机中预留了接口,遥控器外包给外部生产.需要设计遥控器的功能.当前有LG电视机和sony电视机,提供各自接口,需要生产各自的遥控器.用继承的方式,给每个电视厂商编写各自的遥控器.1.2 OO设计自己遥控器设置了一个接口,为不用的厂家单独设计遥控器(集成商家的接口. ).[外链图片转存失败(img-L33AxZUm-1567956...原创 2019-09-08 23:38:03 · 162 阅读 · 0 评论 -
设计模式14-复合模式
1.场景问题解决1.1 场景描述1.2 OO设计1.3 需求变动1.4 带来问题2.用设计模式改进2.1 分析MVC里的模式:Model与View和Controller是观察者模式View以组合模式管理控件View与Controller是策略模式关系,Controller提供策略2.2 重新设计3.设计模式总结3.1 定义复合模式:两种或两种以上设计模式一起使用,组合在...原创 2019-09-05 23:57:35 · 113 阅读 · 0 评论 -
设计模式13-代理模式
1.场景问题解决1.1 场景描述监控糖果机:地点、糖果库存和当前状态1.2 OO设计1.3 需求变动1.4 带来问题2.用设计模式改进2.1 分析远程代理:远程对象的本地代表,通过它可以让远程对象当本地对象来调用。远程代理通过网络和真正的远程对象沟通信息2.2 Java RMI2.2.1 定义RMI远程方法调用是计算机之间通过网络实现对象调用的一种通讯机制。使用这种机制,...原创 2019-09-01 23:34:36 · 127 阅读 · 0 评论 -
设计模式1-策略模式
1.场景问题解决1.1 场景描述模拟鸭子游戏,鸭子能叫,能游泳,鸭子还有各种品种,绿头鸭,红头鸭.1.2 OO设计鸭子抽象类 Duck---->叫声和游泳是普通方法,display是抽象方法,继承的类要实现该方法public abstract class Duck { public Duck() { } public void Quack() { System.out...原创 2019-05-25 23:54:57 · 209 阅读 · 0 评论