设计模式随想

装饰器模式

装饰器模式是一种结构型设计模式,可以不修改现有对象的情况下向其添加新的功能。

主体:一个接口定义一个类的基本功能,一个完成这些基本功能的实现基本类。一个抽象类为装饰器,装饰器类中有一个属性为需要装饰的类,一个构造器需要传入被装饰的实现基本类。

                           

 

抽象类的子类是具体的装饰功能类,继承与装饰器类。传入被装饰的基本类后,可以使用基本类中的基本方法,在需要的时候使用具体装饰器类中的方法。

应用场景

  1. 需要在不同的情况下使用不同的装饰器来改变对象的行为,而不是创建多个子类来实现不同的变化。
  2. 动态地向对象添加新的行为或属性,而不影响现有代码。
  3. 避免使用继承来扩展对象的行为,因为继承会导致代码的复杂性和耦合度增加。

实际运用

以实践项目三中用户管理模块为例:

需求:

个人信息管理:包括个人信息查询个人信息修改密码修改三个基本功能,学生用户因为有兼职的存在,还需要查询信用等级查询余额功能。管理员用户管理用户信息需要录入注册信息用户信用调整显示所有用户删除用户。

在此项目中,因为存在三个等级的用户,需要不同的用户信息管理。常见方法1将所有功能放入一个类中,根据需求进行调用;2可以将基本功能放入一个父类中,子类实现其余用户需要的功能;

常用方法解析

1:所有功能在进行生成时都被创建,应用不安全,且每次需要添加新的功能时都需要对类进行修改,违反了开闭原则。

2:可以根据需求动态的生成对象,但是使用继承拓展对象的欣慰会导致代码对父类的耦合度增强。且需要增加功能时都要对子类代码进行修改或新写一个子类。当一个功能需要多个用户但不是全部使用时,

使用装饰器模式

生成一个用户管理基本功能类,在学生用户模块使用装饰器添加学生独有的功能,使用基本功能时会使用基本类.基本方法(),管理员模块添加管理员功能再进行使用。

优点

每次生成一个基本功能类,在使用装饰器进行功能添加,不影响基本类的功能,且如果存在特例需要增加功能时,可以再添加一个装饰类对已经装饰过的对象进行装饰。

代理模式

代理模式是一种结构型设计模式,它允许通过代理对象来控制对另一个对象的访问。代理对象充当了另一个对象的接口。代理模式在访问对象时引入了一定的间接性,这种间接性可以附加很多用途,比如添加简单的功能;添加部分属性;访问敏感数据或者资源时,可以使用安全代理来控制访问权限,只有被授权的用户才能访问;访问对象时,可以使用智能代理来增加额外的行为。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值