2015年3月1日11:39:28 设计模式

抽象工厂可以创建多个产品类对象,如在种菜工厂中,有种根菜,种茎菜。工厂模式与抽象工厂模式以及简单工厂模式只有在具体应用的时候,分析具体的产品层级,然后选择相应的设计模式。

而在没一个层次,种菜工人所关心的对象也不一样,在简单工厂模式下,工人要想到种植萝卜还是白菜,在工厂模式下,工人想到是种植根菜还是茎菜,而在抽象工厂模式下,则关心种植基因菜还是非基因菜

小结

★工厂模式中,重要的是工厂类,而不是产品类。产品类可以是多种形式,多层继承或者是单个类都是可以的。但要明确的,工厂模式的接口只会返回一种类型的实例,这是在设计产品类的时候需要注意的,最好是有父类或者共同实现的接口。

★使用工厂模式,返回的实例一定是工厂创建的,而不是从其他对象中获取的。

★工厂模式返回的实例可以不是新创建的,返回由工厂创建好的实例也是可以的。

区别

简单工厂 : 用来生产同一等级结构中的任意产品。(对于增加新的产品,无能为力)

工厂方法 :用来生产同一等级结构中的固定产品。(支持增加任意产品)
抽象工厂 :用来生产不同产品族的全部产品。(对于增加新的产品,无能为力;支持增加产品族)

设计模式:代理。
文本编辑器的图片。
可用在前端UI的加载

谁使用,谁判断的原则。

代理模式应用:

UI的打开 和 加载。
打开后再加载,数据部分和显示部分分开。
显示部分在加载资源时,不显示,但是可以更新数据。
加载完成时,再去刷新显示。

观察者模式
注意引用会导致垃圾回收机制,无法回收类。
在listItem使用观察者模式时,最好不要实时new ListItem.
推模式,拉模式。
数据更新前update,或者数据更新后update。要保持一致性。

时间: 2024-08-08 12:38:26

2015年3月1日11:39:28 设计模式的相关文章

2015年5月16日08:39:40

6:10 起了床,如果说是由于即将离开学校让我这么早起来,那更应该是我自己对自己的负责 6:40 回到学校,图书馆都没有开门,便入了实验室,实验楼的门都是关着的,我便推门而入,来到了熟悉的位置,靠窗的一角,但是对于此刻的我的心情,即便是坐在那里,心中也难以平复内心的燥热,是忧虑还是什么,不重要,重要的是知道我该做什么 8:46 来开了实验室,来到了图书馆,我喜欢在靠窗的一角,所以我现在就是这样,在图书馆4楼的靠窗的一角处,写着这篇博客 (^o^)/~!一天的快乐生活开始了!

2015年3月1日11:25:40 前端笔记

1. 尽可能让对象自身的存亡不要影响到别人, 所以尽可能的使用弱引用, 除非你有特殊情况. 2.对于永远存在的对象, 永远让其持有其他对象的弱引用. 例如 stage.addEventListener( MouseEvent.MOUSE_MOVE, object.moveHandler, false, 0, true ); 3. 养成良好的习惯, 事件执行完一定要移除监听( 清除引用 ), 连接执行完一定要关闭连接.............., 自己产生的垃圾,自己清理,不要乱扔果皮和烟头...

2015年1月27日11:26:22

网页字体 移动端项目:font-family:Tahoma,Arial,Roboto,"Droid Sans","Helvetica Neue","Droid Sans Fallback","Heiti SC","sans-self"; PC端含(Mac):font-family:Tahoma,Arial,”Helvetica Neue”,”Hiragino Sans GB”,Simsun,sans-sel

传智播客_2015年Java基础视频-深入浅出精华版 笔记(2015年9月14日23:11:11)

本笔记是个人笔记+摘录笔记相结合,非完全原创 day01 win 7系统打开DOS有趣方法:按住shift+右键,单击“在此处打开命令窗口”(注意:在此处可以是任何的文件夹,不一定是桌面) 用DOS删除的文件不可以在回收站恢复?!! 常用DOS命令d: 回车 盘符切换dir(directory):列出当前目录下的文件以及文件夹md (make directory) : 创建目录(创建文件夹)rd (remove directory): 删除目录(删除文件夹,注意:前提是文件夹必须是空的!!)如果

传智播客 刘意_2015年Java基础视频-深入浅出精华版 笔记(2015年10月25日23:28:50)

本笔记是个人笔记+摘录笔记相结合,非完全原创 day01 win 7系统打开DOS有趣方法:按住shift+右键,单击“在此处打开命令窗口”(注意:在此处可以是任何的文件夹,不一定是桌面) 用DOS删除的文件不可以在回收站恢复?!! 常用DOS命令d: 回车 盘符切换dir(directory):列出当前目录下的文件以及文件夹md (make directory) : 创建目录(创建文件夹)rd (remove directory): 删除目录(删除文件夹,注意:前提是文件夹必须是空的!!)如果

我的Python成长之路---第一天---Python基础(作业1:登录验证)---2015年12月26日(雾霾)

1 #!/usr/bin/env python3 2 # coding:utf-8 3 ''' 4 Created on: 2015年12月29日 5 6 @author: 张晓宇 7 8 Email: [email protected] 9 10 Version: 1.0 11 12 Description: 输入用户名密码,认证成功显示欢迎信息,认证失败,输错三次后锁定 13 14 Help: 15 ''' 16 import os 17 # 定义用户信息写入函数,用于把用户信息写回文件 1

假设今天是2015年3月1日,星期天,请算出13个月零6天后是星期几,距离现在多少秒?

1 import java.text.ParseException; 2 import java.text.SimpleDateFormat; 3 import java.util.Calendar; 4 import java.util.Date; 5 6 public class dateToMill { 7 public static void main(String[] args) { 8 9 use(); 10 11 // noUse(); 12 13 } 14 15 //使用API计

2015年8月27日课程作业(文件权限管理及grep正则和扩展正则表达式)-JY1506402-19+liuhui880818

学习内容:文件权限管理及grep正则和扩展正则表达式 系统环境:CentOS 6.7/7 x86_64 一.作业(练习)内容: 1.总结本此课程中所涉及命令的使用方法及相关示例展示: 2.总结基本正则表达式及扩展正则表达式 3.显示/etc/passwd文件中以bash结尾的行 4.显示/etc/passwd文件中的两位数或三位数 5.显示`netstat -tan`命令结果中以'LISTEN'后跟0个.1个或者多个空白字符结尾的行 6.添加用户bash.testbash.basher以及nol

linux运维实战练习-2015年8月30日课程作业(练习)安排

一.作业(练习)内容: 1.总结文本编辑工具vim的使用方法: 2.总结文件查找命令find的使用方法: 3.总结bash环境变量的相关内容: 4.总结Linux文件系统上的特殊权限(SUID.SGID.Sticky)的知识点: 5.总结Linux磁盘管理.文件系统相关知识点及其相关命令的使用方法: 6.复制/etc/grub.cfg配置文件至/tmp目录,用查找替换命令删除/tmp/grub.cfg文件中的行首的空白字符: 7.复制/etc/rc.d/init.d/functions文件至/t