项目设计之---------- 设计模式的应用(模式的集合,不像之前每个模式分开写了)

考虑到每个模式写一篇文章太零碎,现在写在一起好了

1、观察者模式的应用

一个观察者模式,该模式要求用户改变自己的配置的时候,相应的监听者更新、保存数据等
ConfigChangeListener是观察者父类,其子类是具体观察者,ConfgChangeSubject是抽象通知者,ConnonSiteConfigPanel是具体通知者

2、建造者模式的应用:

建造模式的指挥者,而网站操作抽象类是建造者父类,具体实现类是具体建造者,而对网站(Site)类的操作则是最终需要的产品

3、桥接模式

桥接模式,处理网站操作类与配置这两个纬度的变化,之前本来打算用继承,但考虑到优先要考虑聚合/组合,还是用了桥接模式

4、命令模式:

用命令模式处理任务的分配,方便放到队列,取消和重做等。任务是命令,而网站操作者是真正的任务执行者,TaskDispatchable则是任务的管理者即命令管理者,它会增加或去除任务,分配任务,把任务(命令)分配到具体的网站操作类去执行

5、享元模式

用享元模式解决创建海量对象问题,网站操作类与网站类是内部状态,而网站帐号(SiteAccount)是外部状态SiteOperaterFactory是工厂 、SiteOperaterAbstract是接口 SiteOperaterAbstract具体类是实现类

当然,一个工程并不是越多模式应用越好,应用太多的模式会使得工程复杂难读,所以量情况而定,小的项目就不要搞得太复杂。这里推荐一个框架spring

由于用spring管理类与类的依赖关系,因此省去了很多模式的应用,比如操作网站的子类可以用简单工厂+反射、dao与service之间的关系使用抽象工厂模式管理以方便数据库的切换。spring本来就是个巨大的工厂。

觉得我一定有理解得不对的地方,望高手斧正,如果有不详细的地方也可以指出

项目设计之---------- 设计模式的应用(模式的集合,不像之前每个模式分开写了),布布扣,bubuko.com

时间: 2024-08-05 09:04:12

项目设计之---------- 设计模式的应用(模式的集合,不像之前每个模式分开写了)的相关文章

设计模式学习第三天:2.1简单工厂模式

一. 简单工厂(Simple Factory)模式      Simple Factory模式根据提供给它的数据,返回几个可能类中的一个类的实例.通常它返回的类都有一个公共的父类和公共的方法.      Simple Factory模式实际上不是GoF 23个设计模式中的一员. 二. Simple Factory模式角色与结构: 工厂类角色Creator (LightSimpleFactory):工厂类在客户端的直接控制下(Create方法)创建产品对象.      抽象产品角色Product 

【C#设计模式】01.你真的知道线程安全的“单件模式”吗?

概述: 单件模式的类图可以说是所有模式的类图中最简单的,事实上,它的类图上只有一个类. 尽管从设计的视角来说它很简单,但是实现上还是会遇到相当多的波折. 一.职责: 1.保证一个类有且仅有一个实例 2.且提供一个全局访问点 二.代码中需要用到的地方 线程池(Thread Pool)/缓存(cache)/对话框/处理偏好设置和注册表的对象/日志对象/充当打印机/显卡等设备的驱动程序的对象. 三.生活中用到的地方 1.考勤记录仪可以有多台,但是时钟必须只有一个,所有的考勤记录必须根据这个时钟来生成打

跟我学设计模式视频教程——管擦者模式(下),责任链模式(上)

课程视频 观察者模式(下) 责任链模式(上) 课程笔记 课程笔记 课程代码 课程代码 新课程火热报名中 课程介绍 跟我学设计模式视频教程--管擦者模式(下),责任链模式(上),布布扣,bubuko.com

设计模式的征途—2.简单工厂(Simple Factory)模式

工厂模式是最常用的一种创建型模式,通常所说的工厂模式一般是指工厂方法模式.本篇是是工厂方法模式的“小弟”,我们可以将其理解为工厂方法模式的预备知识,它不属于GoF 23种设计模式,但在软件开发中却也应用地比较频繁.此外,工厂方法模式还有一位“大哥”—抽象工厂模式,会在后面进行介绍. 简单工厂模式(Singleton) 学习难度:★★☆☆☆ 使用频率:★★★☆☆ 一.从一个图表库谈起 M公司想要基于C#语言开发一套图表库,该图表库可以为应用系统提供各种不同外观的图标,例如柱状图.饼状图或折线图等.

javascript设计模式与开发实践阅读笔记(7)——迭代器模式

迭代器模式:指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示. 迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即使不关心对象的内部构造,也可以按顺序访问其中的每个元素. 流行语言如Java.Ruby 等都已经有了内置的迭代器实现,许多浏览器也支持JavaScript的Array.prototype.forEach. jQuery中的迭代器 1 $.each( [1, 2, 3], function( i, n ){ 2 console.log

javascript设计模式与开发实践阅读笔记(5)——策略模式

策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换. 我的理解就是把各种方法封装成函数,同时存在一个可以调用这些方法的公共函数.这样做的好处是可以消化掉内部的分支判断,使代码效率更高. 使用策略模式计算奖金 现在要实现这样一个东西,年终奖是根据员工的工资基数和年底绩效情况来发放的.例如,绩效为S的人年终奖有4倍工资,绩效为A的人年终奖有3倍工资,而绩效为B的人年终奖是2倍工资.假设财务部要求我们提供一段代码,来方便他们计算员工的年终奖. 思路一:创建一个函数,接收两个参数,

设计模式之十一:Composite(组合)—对象结构型模式

2014-05-28 星期三 21:41:44  Composite,继续GOF. Composite组合模式 1.Intent Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly. 将对象组合成树形结构以表示"部分 -整体&quo

Java开发中的23种设计模式详解之二:7种结构型模式

我们接着讨论设计模式,上篇文章我讲完了5种创建型模式,这章开始,我将讲下7种结构型模式:适配器模式.装饰模式.代理模式.外观模式.桥接模式.组合模式.享元模式.其中对象的适配器模式是各种模式的起源,我们看下面的图: 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题.主要分为三类:类的适配器模式.对象的适配器模式.接口的适配器模式.首先,我们来看看类的适配器模式,先看类图: 核心思想就是:有一个Source类,拥有一个方法,待适配,目标接口时

为 ItemsControl 类型的控件提供行号,mvvm模式 绑定集合

从网络上看到的两种方式,一种是,在 codebehind 里为 控件写事件,下面是将集合绑定到 DataGrid 控件: private void DataGridSoftware_LoadingRow(object sender, DataGridRowEventArgs e) { e.Row.Header = e.Row.GetIndex() + 1; } 貌似可行,但是先不说 mvvm 下这种方式的可行性,更新列表某一项,就必须得再写一套处理逻辑. 于是,直接在 ViewModel 里定义