黑马程序员技术交流社区

标题: 关于享元模式的结构 [打印本页]

作者: 亦金亦水    时间: 2014-7-16 15:00
标题: 关于享元模式的结构
通过学习,对享元设计模式不太了解,那么现在整理如下内容:

享元模式采用一个共享来避免大量拥有相同内容对象的开销。这种开销最常见、最直观的就是内存的损耗。

        享元模式的优点:减少对象数量,节省内存空间。

        享元模式的缺点:维护共享对象,需要额外的开销(用一个线程来维护垃圾回收)。

        享元模式的本质:分离与共享



        好了,废话不多说,直接上代码,首先抽象一个场景:

        公司的管理层和普通员工对员工的信息有不同的权限。管理层可以修改员工的个人信息,普员工只能查看不能修改,擅自修改系统会给出提示。员工的个人信息是可以共享的,但是起职能范围和操作权限可以被管理层修改。

抽象享元角色:


[java]



具体享元角色:

[java]


享元工厂:

[java]


员工信息的管理工具:

[java]


模拟一个数据库保存员工信息:

[java]



具体的实现,本例子是基于android实现的,java只单独写一个Test类在main里面实现就行了:

[java] view plaincopy


运行效果:

         

从数据库中可以看出来,张三是人事的普通员工,只能查看公司在职人员,对员工的薪资无权限查看,b1返回false,b3返回true

李四是人事普通员工兼财务主管,可以修改查询员工薪资并且可以查看在职员工信息,b2返回true

如果   

[java]


因为“王武”这个人没有登录,所以提示信息是  “没有登录或者没有该权限...”



-------android培训JAVA培训、期待与您交流! ----------

--------详细请查看www.itheima.com-------------







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2