软件设计与体系结构
X-jazz
任生命如烟火般绽放于夜空,似絮梦流过人间。
展开
-
KWIC 软件系统行为型设计模式应用 -- 观察者模式
Alphabetizer.java:import java.io.IOException;import java.util.ArrayList;import java.util.Collections;public class Alphabetizer implements KWICListener{ private TextLines textlines=null; @Override public void handleEvent(KWICEvent event) { // TOD原创 2020-11-18 18:50:04 · 1336 阅读 · 1 评论 -
管道过滤体系架构风格实现 KWIC 关键词索引系统
Alphabetizer.java:/** * */package pipestyle;import java.io.CharArrayWriter;import java.io.IOException;import java.util.ArrayList;import java.util.List;/** * @author 12know * */public class Alphabetizer extends Filter { public Alphabetizer原创 2020-11-18 16:47:08 · 3163 阅读 · 2 评论 -
面向对象体系架构风格实现 KWIC 关键词索引系统
main.java:package cn.ed.nju.kwic.oo;import java.util.ArrayList;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub ArrayList<String>ls=new ArrayList<String>(); InputStore inputStore=new原创 2020-11-18 16:09:58 · 4168 阅读 · 1 评论 -
简单工厂模式
模式动机考虑一个简单的软件应用场景,一个软件系统可以提供多个外观不同的按钮(如圆形按钮、矩形按钮、菱形按钮等),这些按钮都源自同一个基类,不过在继承基类后不同的子类修改了部分属性从而使得它们可以呈现不同的外观,如果我们希望在使用这些按钮时,不需要知道这些具体按钮类的名字,只需要知道表示该按钮类的一个参数,并提供一个调用方便的方法,把该参数传入方法即可返回一个相应的按钮对象,此时,就可以使用简单工厂模式。 模式结构 分析如下代码:简单工厂模式重构后的代码 模式分析 将对象的创建原创 2020-11-11 10:41:09 · 116 阅读 · 0 评论 -
中介者模式(对象行为型)
由来 意图 用一个中介对象来封装一系列的对象交互。 中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互 动机 OO软件设计与开发中,应该尽量将对象细化,使其只负责或呈现单一的职责(单一职责原则),对象种类、个数增多 一个模块由很多对象构成,对象之间可能存在相互的引用 为了减少对象两两之间复杂的引用关系 使之成为一个松耦合的系统,需要使用中介者模式(动机)适用性** 软件构建过程中** 常出现多个对象互相关联交互的情况 对原创 2020-11-10 22:27:13 · 195 阅读 · 0 评论 -
策略模式(对象行为型)
由来 对于平面上的点坐标数组进行排序,根据不同的应用场合可能有三种算法:按照点的X坐标大小排序按照点的Y坐标大小排序按照点到原点的距离大小排序 首先想到的方案: 用三个函数分别实现这三种算法 条件判断语句根据情形选择其中一个算法实现 算法硬编码进使用它们的类,缺点: 使用算法的类变得复杂而难于维护 当需要支持多种算法且每种算法都很复杂时问题会更加严重意图、动机和适用性 意图 定义一系列算法,并进行封装,并使其可相互替换 策略模式使得算法可独立于使用它的客户原创 2020-11-10 22:03:53 · 132 阅读 · 0 评论 -
观察者模式(对象行为型)
由来 OO开发的一个主导原则是给对象正确地分配职责 一个对象只应做一件事,而且要将它做好 提高重用性和可维护性 正确划分任务重要的领域是用户界面和基础业务逻辑间的交互 更改用户界面不会对应用程序的其他部分产生连带影响 业务要求也可能会发生变化这一切与用户界面无关 两组要求都会发生变化 自GUI 出现以后开发的很多面向对象的框架均支持将用户界面从应用程序的其他部分中划分出来 将系统分割成一系列相互协作的类有也存在一些不足:1. 需要维护相关对象间的一致性2. 为维持一原创 2020-11-10 21:24:19 · 192 阅读 · 0 评论 -
模板方法
模板方法模式实例原创 2020-11-10 20:55:21 · 90 阅读 · 0 评论 -
设计模式的分类
按目的分类 创建型:与对象的产生相关 结构型:处理类或对象的组合 行为型:对象之间如何交互,怎样分配职责。 按范围分类 类模式:类之间的静态继承、编译时已经确定 对象模式:也用继承,但对象的类型在运行时可以发生变化,通过接口/抽象基类实现。* 结合上述两种标准,将设计模式划分为6类: 创建型类模式 将对象的创建工作延迟到子类 创建型对象模式 将对象的创建工作延迟到另一个对象中 结构型类模式 使用继承机制组合类 结构型对象模式 描述了对象的组装原创 2020-11-10 19:02:15 · 79 阅读 · 0 评论 -
面向对象设计原则概述
设计原则名称设计原则简介重要性单一职责原则(Single Responsibility Principle,SRP)类的职责要单一,不能将太多的职责放在一个类中。★★★★☆开闭原则(Open-Closed Principle, OCP)软件实体对扩展是开放的,但对修改是关闭的,即在不修改一个软件实体的基础上去扩展其功能。★★★★★里氏代换原则(Liskov Substitution Principle,LSP)在软件系统中,一个可以接受基类对象的地方必然可以接受一...原创 2020-11-09 20:26:42 · 129 阅读 · 0 评论