喷墨打印的照片不塑封能保存多久, -爱游戏平台

苗坤旺离型膜

因为现在普通彩色相片打印纸非常便宜,彩色打印机也很普及,我们经常把孩子的旅游的照片打印出来放在书桌上或者背景墙上面。但是没有覆膜的相纸很容易褪色。而我压在透明桌布(pvc桌布)下面的却没有褪色。究其原因,是空气中水汽的原因。(记得压透明pvc桌布时,需要相纸完全干透,否则容易粘在桌布上面。)

而通常家庭不具备覆膜的条件,拿到外面去覆膜很贵,现在相纸便宜,随时可以重新打印。有一种干式覆膜的相纸膜也是可以选用的。而我采用的是比较粗糙的办法,就是用透明胶贴在相纸表面,让它形成覆膜保护,然后再贴到电视背景墙上面,效果也不错的。只要不正对太阳或者强光,能保持很长时间不褪色。而不加保护的相纸只需要一两个月就变色了。

室内灯具因为现在大量采用led,其传统灯具中的紫外线因素是几乎不存在了。

*后注: 今天我又购买了一种称为“冷裱膜”的产品。测试了效果也是不错的。记住,不要用网上介绍的从一端开始粘起,要从其中一个角开始粘,这样更容易操作。切记在第一个角粘贴时,对对齐,并确保长和宽都和相片是平行的。多粘贴几次就掌握它的技巧了。

?推荐查看我的软件作品:

1. pb反编译大师

2. pb混淆加密大师

3. 互联网数据组件:datawindowhttp

4. esc/pos打印组件:esc/pos imageprint

5. sqlconnectmanager:数据库连接断线管理(年后即将测试)

pb反编译, pb反编译大师, pb加密, pb混淆加密大师,datawindowhttp,pb decompiler,pb obfuscatorhttp://powerbuilder.ltd/indexcn.html

要解决的问题

考虑一个咖啡店收费的问题:如何实现灵活的咖啡的价格计算。 咖啡店主要卖咖啡,但是后来为了满足不同客户的不同口味,只是纯咖啡,显得太单调了,就考虑增加不同的搭配,搭配不同的配料后会组成另一种饮品,这样,品种丰富了,但随之问题也来了,如何为不同新的品种计算新的准确的价格。两种方案:

第一种:可以采用继承的方式,将纯咖啡作为基类,而后需要什么品种的话,可以生成一个子类,单独作为一个品种来重写计算价格的方法,并且还可以为这个品种添加其他功能。但是:继承有一个很大的问题就是,这样的方案实现是首先你是知道都有什么品种的,才会派生出各种子类,但是,如果后续想要在某个现有品种中去掉一些或者加上一些内容,甚至直接删除这个品种,就会很麻烦的总是修改对应的类了,而且还有个缺点是:会产生很多种子类,如果品种很多,而且每个品种的差别很小的时候,都分别单独的作为一个类就会很麻烦。

第二种:就是采用我们今天要讲的这篇文章的主题装饰者模式。先类比一下生活中的一个例子:一张纸质的照片,想要让这张照片保存的久一点,我们可以先给这张照片塑封;塑封后,觉得还不够的话,可能还会给这张照片装一个相框;加一个相框还觉得不能好好保护相片的话,再加个玻璃罩。在这个例子中,我们可以理解照片本身就是要被装饰的对象,塑封胶、相框、玻璃罩都是作为装饰者。每一层的装饰者都不会修改最里边的被装饰的对象。这里我们可以把具体的咖啡饮品当做被装饰者,要加入的食物或饮料当做装饰者,每一种咖啡饮品可以被不同的装饰者装饰。

将上述为不同咖啡饮品计算价格的问题用编程的概念来讲就是如何能够透明地给一个对象增加功能,并实现功能的动态组合。这就是装饰者模式的功能。

模式定义

装饰者模式能够实现动态地为对象添加功能,从一个对象外部透明的给对象增加功能。透明地给一个对象增加功能,就是说要给一个对象增加功能,但是不能让这个对象知道,也就是不能去修改这个对象

每个被装饰者可以被多个装饰者装饰。例如:黑咖啡(被装饰者)可以被牛奶(装饰者)、水果(装饰者)装饰,而且,不同的装饰者之间没有先后顺序的限制。

具体实现

装饰者需要和被装饰的对象继承于同样的类或者实现同样的接口(ios中称遵守同样的协议),而后,在具体的装饰者的实现中,转调被装饰者对象【这就需要装饰者对象持有一个被装饰者对象】

下边是具体实现的uml图和不同类之间的调用层次图。

coffeecomponent:咖啡基类(也可以是接口/协议)blackcoffee:具体的咖啡,就是要被装饰的对象。condimentdecorator:配料的基类(装饰者的基类),而且需要继承于被装饰者基类coffeecomponent,同时还要持有一个coffeecomponent类型的属性。milkdecorator:牛奶装饰者,具体的装饰者对象。

从上边的层次图中可以看出,多层装饰者一层层的包在被装饰对象的外部,功能方法的调用也是一层层递归调用被装饰的对象。从图中可以看出:当黑咖啡被牛奶装饰后,牛奶装饰器就成为了新的被装饰者,可以被后续的其它装饰者装饰,而且各个装饰者之间是没有顺序要求的。顺序完全可以按照自己的意愿来进行。

//********************************咖啡组件(基类)*********************

@interface coffeecomponent : nsobject

- (double)getprice;

@end

@implementation coffeecomponent//抽象组件,可以写默认实现的方法,也可以用协议实现

- (double)getprice

{

return 0.f;

}

@end

//********************************黑咖啡(具体咖啡类)*********************

@interface blackcoffee : coffeecomponent//继承于抽象组件的具体组件

- (double)getprice;

@end

@implementation blackcoffee

- (double)getprice

{

return 5;

}

@end

//********************************装饰者基类*********************

@interface condimentdecorator : coffeecomponent//继承于组件的装饰者抽象类

- (instancetype)initwithcomponent:(coffeecomponent *)component;

@property (nonatomic,strong)coffeecomponent *component;

@end

@implementation condimentdecorator

- (instancetype)initwithcomponent:(coffeecomponent *)component

{

if (self = [super init]) {

_component = component;

}

return self;

}

@end

//********************************牛奶装饰者(具体装饰者)*********************

@interface milkdecorator : condimentdecorator//继承于抽象佐料装饰者的具体装饰者

@end

@implementation milkdecorator

- (double)getprice

{

nslog(@"牛奶加了2元");

return 2 [self.component getprice];

}

@end

//在此省略其它装饰者的代码,与牛奶装饰者的代码一样。代码可以查看demo。

//=========================外部调用=====================

//纯咖啡

blackcoffee *blackcoffee = [[blackcoffee alloc]init];

//加奶

milkdecorator *milkdecorator = [[milkdecorator alloc]initwithcomponent:blackcoffee];

//加豆浆

soydecorator *soydecorator = [[soydecorator alloc]initwithcomponent:milkdecorator];

//加水果

fruitdecorator *fruitdecorator = [[fruitdecorator alloc]initwithcomponent:soydecorator];

nslog(@"一共多少钱%f",[fruitdecorator getprice]);

总结

装饰者模式比继承更灵活:继承是静态的,而且继承的子类都有基类同样的功能,但是装饰者模式能够把功能分离到不同的装饰器中,可以动态的选择想要什么功能。装饰者模式的本质是动态组合:动态的进行装饰器的组合,可以为被装饰对象透明的增加功能。装饰者模式不仅可以增加功能,也可以完全实现新的功能和控制功能的访问。可以在装饰器中调用被装饰对象功能的时候,进行控制。装饰者模式的缺点:会产生细粒度的对象,如果一系列的复杂功能,想要把不同的功能都细分到不同的装饰器上,就会产生很多细粒度的对象。

我们总是习惯用照片记录生活的点点滴滴,手机摄像头经过这些年的发展,现在已经能很好的满足大家拍照记录的需要,那么经过一段时间之后,拍摄的照片越来越多了,有哪些方法来保存这些美好的记忆呢?

一般常见的保存方法有:直接保存在手机存储中、保存到移动硬盘或u盘中、保存到网络云存储中、保存到自己组建的云存储中、保存到nas中。

直接保存到手机内存中应该是最简单的存储方式,不需要做任何设置,需要查看照片的时候也都可以直接打开。不过现在手机大多都不支持扩展存储,而现在手机拍摄的照片尺寸也都不小,长久以往照片占用的空间不容小觑。并且直接存储在手机中会存在手机丢失或意外损坏后数据随着丢失的风险。同时存储的照片多,换手机后之前手机中照片的转移也很麻烦。

保存到移动硬盘或u盘时,最大的问题是随时查看照片不方便,要连接到电脑上面才能查看。并且当你的照片分布在多个硬盘或u盘中时,需要一个个的检索,很不方便。

保存网络云存储只需要注册一个账户,一个固定容量的存储空间你可以随意使用,只要有网络就可以使用。但是存在问题的也不少,比如数据的安全性,下载时的限速等。

自己组建云存储和使用nas差不多,都能够安裝多块硬盘,并且当盘存满的那时候,只要将新磁盘安装并进行简单的设置就可以了,十分便捷。在安全层面,也都十分优异,但是要用好的话需要一点专业的技能。

分享
文章爱游戏平台的版权声明:除非注明,否则均为苗坤旺离型膜原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
applausebadlaughcoffeefabulousfacepalmfecesfrownheyhainsidiouskeepfightingnoprobpigheadshockedslapsocialsweattolaughwatermelonwittywowyeahyellowdog
评论列表 (暂无评论,10人围观)

还没有评论,来说两句吧...

微信二维码
微信二维码
支付宝二维码
网站地图