2.设计模式原理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38331606/article/details/87965560
  1. 设计模式原理
    1. 开闭原则

概念 对扩展开放,对修改关闭

理解 即通过接口的方式,在后期添加新的功能时,添加实现类的接口即可

使用 List接口等(ArrayList,LinkedList)的add,remove的实现

    1. 单一职责原则

概念 一个类只负责一个职责

理解 要实现一个打电话功能:Iphone接口中,定义了拨出setAside(),数据传输data(),挂断hangUp()方法。但是setAside()以及hangUp()方法属于协议管理的内容,而data()属于数据传输的内容。故可以拆分为IConnectionManager(),IDateManager()两个接口。

使用 IUserService执行逻辑判断,IUserDao执行数据操作,体现了单一职责原则。

IUserService执行行为操作,UserBean执行属性的操作,体现了属性和行为的分离。

    1. 里氏替换原则

概念 子类可以扩展父类的功能,但不能改变父类原有的功能。

理解 即子类不可以为了新添加功能,覆盖父类已实现的原有功能的方法。

实例 B-fun(减法),后来新增加法时,直接在其子类A中覆盖fun方法  严重错误

    1. 接口隔离原则

概念 客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应建立在最小的接口上

理解 即接口只服务于一个子模块或者业务逻辑,如有一个接口Interface1,有5个方法。其中Class1想实现第1-3个方法,Class2想实现第3-5个方法。此时可以拆分为3个接口,分别含有1-2,3,4-5的接口,这样在其实现类中可以很好的消除了冗余。

使用 如手机有娱乐(打游戏、看小说),支付(微信、支付宝),工作等功能。可以使用三个不同的接口,代替IPhoneService接口,从而在各自的实现类中只关注自己的业务逻辑,从而实现高内聚低耦合的目的。

    1. 依赖倒置原则

概念 高层模块不应该依赖低层模块,二者都应该依赖其抽象。

抽象不应该依赖细节;细节应该依赖抽象。

理解 两个实体模块之间应通过 接口 的方式建立依赖关系

使用 即学生看语文书,学生Student、语文书ChineseBook是两个不同的模块。如果在Student中doSomething(ChineseBook c){读语文书}方法中定义看语文书,则导致模块之间耦合度大。如果添加看英语书EnglishBook。故采用依赖倒置原则,将模块之间的依赖建立在其抽象上,如doSomething(IBook b)的方式。

    1. 迪米特原则

概念 一个对象应该对其他对象保持最少的了解。

理解 两个实体模块之间应通过 第三方中介对象 来建立依赖关系

使用 如要实现我和陌生人说话这个功能,为避免我和陌生人的直接关联。建立朋友,通过我-朋友,朋友-陌生人的模型,完成逻辑。

 

设计模式大纲 https://blog.csdn.net/qq_38331606/article/details/87965558

猜你喜欢

转载自blog.csdn.net/qq_38331606/article/details/87965560
今日推荐