当前位置: 首页 > news >正文

营销型网站 平台asp 网站开发 软件

营销型网站 平台,asp 网站开发 软件,做淘宝那样的网站麻烦吗,seo优化外链平台人类的军工发展史就是一场矛与盾的追逐#xff0c;矛利则盾坚#xff0c;盾愈坚则矛愈利。在传统的冶金工艺下#xff0c;更坚固的盾牌和盔甲往往意味着更迟缓笨重的运动能力和更高昂的移动成本。从战国末期的魏武卒、秦锐士#xff0c;到两宋之交的铁浮图、重步兵#xf… 人类的军工发展史就是一场矛与盾的追逐矛利则盾坚盾愈坚则矛愈利。在传统的冶金工艺下更坚固的盾牌和盔甲往往意味着更迟缓笨重的运动能力和更高昂的移动成本。从战国末期的魏武卒、秦锐士到两宋之交的铁浮图、重步兵再到有明一朝的边军四大营、神机营最后到现代战争的各式主战坦克…防御越高移动越慢。 甲辰年正月初三窗外的声声爆竹撩拨着执笔人的心绪。笔者每每读到一些战史时都会有一种幻想在没有火器的时代如果身穿一副重型盔甲刀劈不入箭射不穿那不就是高达一样的存在吗 实际上在没有技术爆炸的情况下传统的重型盔甲会让普通人寸步难行防御每提高一分重量必然也会提高一分。这种层层嵌套的规律特别契合装饰者模式的设计理念。 一言 就像打包一个快递一样装饰者模式动态的将新功能附加在对象上在对象功能扩展方面它比继承更有弹性也体现了开闭原则。 从盔甲到装甲 好的各位欢迎来到奇珍异品收藏室在你的面前有原始人的兽皮衣、秦始皇的金缕玉衣、唐太宗的鳞甲、史塔克的马克四十、反浩克装甲和T62主战坦克。 我需要一个程序在我穿上了不同盔甲又登上了不同的载具之后算出体系的整体重量。 进击的莽撞人 “大哥这题俺会看俺的” 莽撞人搓搓手开始展示他的设计思路 在莽撞人展示思路的同时我们不妨先尝试理解下问题的本质。 在我们的面前有大量的盔甲和装甲我既可以穿着马克装甲进入反浩克装甲也可以穿着原始人的兽皮衣进入T62主战坦克… 这种组合有很多种如果求具体的数值一定是一个很经典的排列组合高考题。 在这种情况下莽撞人的设计思路的确能够暂时的解决业务需求。但是从长远的设计角度考虑这种设计会产生很多的类如果奇珍异品收藏室的宝物越来越多类的数量就会倍增进而引发类爆炸。 考虑到莽撞人的高爆发我们选择悄咪咪的离开。 才出狼窝又如虎穴 “哥哥我他的方案有瑕疵我有个大胆的想法你给看看” 未成想转角遇到另一个莽撞人。 “哥哥不就是类爆炸的问题嘛你看我的咱把不能贴身穿的都给它做成内置的怎么样” 不得不说这种方案确实没有之前那么鲁莽但是问题的本质并不是类爆炸而是由类爆炸带来的扩展性低的问题。现在通过内置的确在一定程度上缓解了类爆炸的问题但是并没有解决宝物新增带来的系统难以维护的问题。 装饰者模式 终于两位莽撞人收了神通准备听听我们的方案。 其实我们通过仔细拆解需求可以发现是可以将这些宝物分为主体和包装的这一点在第二个方案里实际上也有体现只不过第二个方案并没有处理好主体和包装的关系。 主体其实就是莽撞人所说的贴身穿的比如各式盔甲、马克40等等而包装则是像T62坦克这种不一定会被方案选中的装甲。主体是被装饰者包装是装饰者装饰者可以聚合被装饰者。 举个例子我穿着马克40装甲坐在两栖作战车上的T60坦克里。贴身的马克装甲是被装饰者T62和两栖车都是装饰者。 设计 通过weight()递归计算体系重量。 代码实现 抽象 public abstract class AbsSuit {public String des;private float wit 0.0f;public abstract float weight();//settergetter }装备盔甲 public class Suit extends AbsSuit{Overridepublic float weight() {return super.getWit();} }马克40 public class Mark40 extends Suit{public Mark40() {setDes(马克40装甲已装配);setWit(30000);} }包装抽象 public class Decorator extends Suit{private Suit obj;public Decorator(Suit obj) {this.obj obj;}Overridepublic float weight() {return super.getWit()obj.weight();}Overridepublic String getDes() {return super.des super.getWit()obj.getDes();} }T62主战坦克 public class T62 extends Decorator{public T62(Suit suit) {super(suit);setDes(T62主战坦克已装配);setWit(70000);} }两栖运输车 public class TranCar extends Decorator{public TranCar(Suit suit) {super(suit);setDes(两栖运输车已装配);setWit(10000);} }称重工厂 public class XFactory {public static void main(String[] args) {Suit suit new Mark40();System.out.println(suit.getDes());System.out.println(称重1 suit.weight() kg);suit new T62(suit);System.out.println(suit.getDes());System.out.println(称重2 suit.weight() kg);suit new TranCar(suit);System.out.println(suit.getDes());System.out.println(称重3 suit.weight() kg);} }____启动 装饰者模式在JDK IO 的应用 在JDK 的 IO 机构中InputStream族的设计模式就是装饰者模式。 InputStream是抽象类FilterInputStream是装饰者InputStream及其子类都是被装饰对象。 结 相信大家通过以上的例子会对装饰者模式有了进一步的了解。在我看来装饰者模式就是一个套盒子的游戏它通过巧妙的嵌套和递归将原本需要类扩展的逻辑封装在了关系内在不违反开闭原则的前提下使得代码更加的优雅便于维护和理解。 关注我共同进步龙年大吉。——Wayne
http://www.pierceye.com/news/644496/

相关文章:

  • 西安门户网站开发wordpress如何在文章底部添加目录
  • 设计婚纱网站宁波网站优化服务
  • 建设电子商务网站的花费那些公司做网站比较厉害
  • 桂林建站平台哪家好东莞百度快速排名提升
  • 网页设计框架哈尔滨网络优化推广公司
  • 深圳专业做网站技术西安网站设计报价
  • 做电影资源网站动图制作网站
  • 网站域名免费申请深圳龙华怎么样
  • 织梦建设手机网站wordpress中portfolio
  • 网站开发的检索速度在啥范围之内设计网站大全网
  • 外国人学做中国菜的网站php购物网站开发成品
  • 手机网站专题网站建设私活
  • 自建网站 备案视频号广告推广
  • 青岛网站优化东莞市场监督管理局官网
  • 深圳珠宝网站设计临沂seo优化
  • 东莞网站建项目代理
  • 心理咨询网站开发营销型网站的建设要求都有什么
  • 优化网站要怎么做中国外协机械加工订单网
  • 运动健身型网站开发永久网站空间
  • 好的网站建设公司排名小程序怎么引流推广
  • 建设部网站 光纤到户平顶山 网站建设公司
  • 网站建设费计入哪个科目赛罕区城乡建设局网站
  • 计算机协会网站模板如何做微信下单小程序
  • 购物网站开发流程图大连装修公司
  • 网站开发定制推广杭州手表网站域名
  • 惠州网站建设方案推广企业网站必备模块
  • 网站内页产品做跳转做电商有哪些平台
  • 如何自建网站服务器wordpress下载权限
  • 重庆专业网站设计服务做染料的网站
  • 长春模板建站公司浙江住房和建设厅网站