设计模式总结 - UML关系总结

1.面向对象关注的点:
可维护:代码是可以维护的
可扩展:方便扩展
可复用:代码可复用

抽象类,封闭不变的部分,抽象易变的部分
封装,继承和多态把程序的耦合度降低


2.UML中的关系有
继承,实现接口,关联(1对1),聚合(1对多),组合(构造函数中实现),依赖(构造函数参数中加入依赖部分)

关联关系:1对1

class T1
{
   T2 t2;
}

不一定体现在非要构造一个字段,也可以是一个方法中需要使用关联的对象。

聚合关系:1对多的关系

Class T1
{
   List<T2> t2;
   T2[] t2;
}

组合关系:表示是不可缺失的一部分

Class T1
{    
   T2 t2;
   public T1()
   {
     t2=new T2();
   }
}

依赖关系

Class T1
{
     public T1(T2 t2,T3 t3){}
}

总结示例:

复制代码
   class T1 
    {
        T2 t2;  //关联1:1
        List<T2> t2s; //聚合1:n
        
        public void CreateT2(T2 t3)
        {
            this.t2 = t3; //依赖
        }

        public T1()
        {
            t2 = new T2();  //组合,强耦合
        }

    }
    class T2 { }
复制代码

3.单一职责

就一个类而言,只有一个引起它变化的原因
意思是不需要重新写代码改变这个类,职责需要单一
一个类的职责过多,等于将这些职责耦合在一起。一个职责的变化,可能会抑制这个类完成其他职责的能力。

 

4.开放封闭原则

软件实体(类,模块,函数)应该可以扩展,但是不可以修改。
对扩展开放,对修改封闭

5.依赖倒转原则
抽象不依赖于细节,细节依赖于抽象
面向接口编程,不要对实现编程


6.里氏替换原则

7.接口隔离原则:一个类对另外一个类的依赖建立在最小的接口上

 

 

 

 


 

posted @   mick0802  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示