栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

对于LAB2的收获

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

对于LAB2的收获

最近完成了软件构造的第二次实验,相比于第一次实验,对于Java的使用,则有了更多的理解,在这次实验中,设计了关于graph的ADT,让我对类的设计有了更多的理解。

一、先写接口再写实现类

在这个实验中,对于图来说,有许多的方法,添加点,添加边,删除点及其对应的边,得到顶点集,给定源点或目标点,得到与之连接的点及其权重等方法,如果按照我之前的写程序的思维,应该就是直接实现这些方法,而实验中给的框架则是先写了一个接口,然后去实现接口里的各个方法,这样是有许多好处的。逻辑清晰,代码易懂,方便扩展,可维护性强。在设计模式的OCP,就是要使用接口来实现对扩展开放,对修改关闭。这样也是为了减少各个类之间的依赖。也可以对客户端进行一些隐藏,在进行变量声明时,可以使用更加抽象的接口名称来声明。

二、工厂方法

按照我i们的固定思维,创建对象都是直接类型 名称=new 类型;而在这次实验中。它所鼓舞i的框架中,则是直接在接口中写出了一个空图的创建,

public interface Graph {
    
    
    public static  Graph empty() {
        return new ConcreteEdgesGraph();
    }

这就是工厂方法。工厂方法模式,定义一个用户创建对象的接口,让继承接口的子类决定实例化某个类。工厂方法使一个类的实例化延迟到其子类。这种模式的好处是:1.符合OCP:增加新产品时,只需要增加相应的具体工厂类和具体产品类。2.符合SRP:一个工厂只负责一个产品的创建。同样的,它也可以对客户端隐藏类型,在加上第一点中的隐藏,我们创建一个空图,则只需要Graph graph = Graph.empty();这样客户端就只知道接口的名称Graph,而完全不知道这个接口的实现名称,非常好的隐藏了子类的ConcreteEdgesGraph的名称。我们以后在设计类的时候,也可以采用工厂方法模式来实现。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/967263.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号