![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件工程及系统设计
文章平均质量分 52
有品位的程序员
这个作者很懒,什么都没留下…
展开
-
【java设计模式】装饰模式
装饰模式(Decorator Pattern) :动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。某软件公司基于面向对象技术开发了一套图形界面构件库VisualComponent,该构件库提供了大量基本构件,如窗体、文本框、列表框等,由于在使用该构件库时,用户经常要求定制一些特殊的显示效果如带滚动条的窗体、带黑色边框的文本框、既带滚动条又带黑色边框的列表框等等,因此经常需要对该构件库进行扩展以增强其功能。原创 2022-06-02 17:09:40 · 300 阅读 · 0 评论 -
【java设计模式】单例模式——懒汉模式中双重检查锁定等机制原理
单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式的要点有三个:1.某个类只能有一个实例2.必须自行创建这个实例3.必须自行向整个系统提供这个实例单例模式是一种对象创建型模式实例 某软件公司承接了一个服务器负载均衡(Load Balance)软原创 2022-05-10 17:04:21 · 651 阅读 · 0 评论 -
【java设计模式】抽象工厂模式
产品等级结构:产品等级结构即产品的继承结构,例如一个抽象类是电视机,其子类有海尔电视机、海信电视机、TCL电视机,则抽象电视机与具体品牌的电视机之间构成了一个产品等级结构,抽象电视机是父类,而具体品牌的电视机是其子类。产品族:在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组产品,例如海尔电器工厂生产的海尔电视机、海尔电冰箱,海尔电视机位于电视机产品等级结构中,海尔电冰箱位于电冰箱产品等级结构中。抽象工厂模式包含如下角色:AbstractFactory:抽象工厂Concre原创 2022-05-03 14:38:22 · 194 阅读 · 2 评论 -
【工厂方法模式】将原有的电视机工厂进行分割,为每种品牌的电视机提供一个子工厂,海尔工厂专门负责生产海尔电视机,海信工厂专门负责生产海信电视机,如果需要生产其他电视,只需要对应增加一个新的工厂即可
简单工厂模式想要增加新的产品必须修改工厂类,不符合开发的开闭原则,如果使用工厂方法模式,那么只需要增加一个工厂类即可。工厂方法模式包含如下角色:Product:抽象产品ConcreteProduct:具体产品Factory:抽象工厂ConcreteFactory:具体工厂工厂方法模式是简单工厂模式的进一步抽象和推广工厂方法模式保持了简单工厂模式的优点,并克服了它的缺点核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给其子类去完成可以允许系统在不修改工厂角色的情况下引进新产品增加具原创 2022-05-03 12:35:14 · 2375 阅读 · 0 评论 -
【java设计模式】简单工厂模式,工厂可以根据传入的不同参数返回不同品牌的电视机。现使用简单工厂模式来模拟该电视机工厂的生产过程。
简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类简单工厂模式包含如下角色:Factory:工厂角色Product:抽象产品角色ConcreteProduct:具体产品角色建立一个电视抽象产原创 2022-05-02 15:51:04 · 1588 阅读 · 0 评论 -
【设计模式】状态模式,在某论坛系统中,用户可以发表留言,发表留言将增加积分;用户也可以回复留言,回复留言也将增加积分;用户还可以下载文件,下载文件将扣除积分。该系统用户分为三个等级
在软件系统中:有些对象具有多种状态这些状态在某些情况下能够相互转换对象在不同的状态下将具有不同的行为传统做法:使用复杂的条件判断语句来进行状态的判断和转换操作导致代码的可维护性和灵活性下降出现新的状态时,代码的扩展性很差,客户端代码需要进行相应的修改,违背了开闭原则。状态模式(State Pattern) :允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。其别名为状态对象(Objects for States),状态模式是一种对象行为型模式论坛用户等级:实例说明在某原创 2022-04-12 17:58:20 · 889 阅读 · 0 评论 -
【java设计模式】命令模式——电视机是请求的接收者,遥控器是请求的发送者,遥控器上有一些按钮,不同的按钮对应电视机的不同操作。
命令模式(Command Pattern):将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式包含如下角色:Command(抽象命令类):一般是一个接口,在其中声明了用于执行请求的excute()等方法,通过这些方法可以调用请求接收者的相关操作。ConcreteCommand(具体命令类):具体命令类是抽象命令类的子类,实现了在抽象命令类中声明的方法,它对原创 2022-03-29 23:13:32 · 1295 阅读 · 0 评论 -
【java设计模式】迭代器模式——通过遥控器方便地切换频道,可以以不同的方式遍历,而不需要了解电视机内部的结构
迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。UML图:Iterator(抽象迭代器):定义了访问和遍历元素的接口,一般声明如下方法:first();next();hasNext();currentItem()。ConcreteIterator(具体迭代器):实现了抽象迭代器接口,完成对聚合对象原创 2022-03-29 22:28:32 · 1049 阅读 · 0 评论 -
【java模板模式】是一种基于继承的代码复用技术 将一些复杂流程的实现步骤封装在一系列基本方法中
模式分析是一种基于继承的代码复用技术将一些复杂流程的实现步骤封装在一系列基本方法中在抽象父类中提供一个称之为模板方法的方法来定义这些基本方法的执行次序,而通过其子类来覆盖某些步骤,从而使得相同的算法框架可以有不同的执行结果.//模板方法public void template() { open(); display(); //通过钩子方法来确定某一步骤是否执行 if(isPrint()) {原创 2022-03-18 21:45:37 · 253 阅读 · 0 评论 -
【java设计模式】观察者模式——猫、狗与老鼠 :假设猫是老鼠和狗的观察目标,老鼠和狗是观察者,猫叫老鼠跑,狗也跟着叫,使用观察者模式描述该过程。
假设猫是老鼠和狗的观察目标,老鼠和狗是观察者,猫叫老鼠跑,狗也跟着叫,使用观察者模式描述该过程。问题分析:下面是观察者模式的模板import java.util.*;public abstract class Subject { //定义一个观察者集合用于存储所有观察者对象 protected ArrayList observers<Observer> = new ArrayList();原创 2022-03-18 16:24:53 · 4277 阅读 · 0 评论 -
【java设计模式】设计模式,针对接口编程,而不是针对实现编程。以鸭子的叫和飞行为为例
整合鸭子的行为 关键在于,鸭子现在会将飞行和呱呱叫的动作“委托“别人处理,而不是使用定义在Duck类内的呱呱叫和飞行方法。 做法是这样的: 1 首先,在Duck类中“加入两个实例变量”,分别为”flyBehavior”与“quackBehavior”,声明为接口类型,每个鸭子对象都会动态地设置这些变量以在运行时引用正确的行为类型。 我们用两个相似的方法performFly()和performQuack()取代Duck类中的fly()与quack()。懒得贴代码了,直接上GitHubhttps://gi原创 2022-03-04 22:58:48 · 381 阅读 · 0 评论 -
【设计模式】针对接口编程,以不同方法排序为例
设计模式(Design Pattern)是一套被反复使用、多数人知晓的、代码设计经验的总结 使用设计模式是为了可重用代码、让代码更容易被他人理解、提高代码的可靠性。这里使用了一个Sort类接口,这个接口,可以通过配置xml改变排序的类型。先建立ArrayHandler类,这个类里面包含了setSort、sort方法,通过setSort改变配置实现不同的排序方法。ArrayHandler类package strategy;p原创 2022-03-04 22:01:28 · 417 阅读 · 0 评论 -
【python期末设计(节选)】志愿者管理系统开发包含源码软件工程
一、概述1.1 课题描述 在信息化高速发展的今天,各行业都应该充分利用信息化管理的软件系统,更好地的管理工作,让各项活动得到更好的开展,人力,财力,物理上更好的分配利用和协调调度。利用志愿者管理系统,将更方便的管理志愿者和相关的团队活动。无纸化和远程桌面办公,将更简便,更快速的传播和发布相关信息。基于 B/S 架构的应用系统,灵活的审核流程设置,各功能模块使用都是人性化设置。操作简单,用户只要稍作培训即可熟悉使用本系统。原创 2022-02-27 11:19:12 · 4017 阅读 · 4 评论