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

惠州网站制作策划网络服务提供者接到权利人的通知后

惠州网站制作策划,网络服务提供者接到权利人的通知后,广告门网站,uc下一页编程设计模式六大原则 开闭原则#xff08;Open Close Principle#xff09;#xff1a;对扩展开放#xff0c;对修改关闭。在程序需要进行拓展的时候#xff0c;不能去修改原有的代码#xff0c;实现一个热插拔的效果。简言之#xff0c;是为了使程序的扩展性好#…编程设计模式六大原则 开闭原则Open Close Principle对扩展开放对修改关闭。在程序需要进行拓展的时候不能去修改原有的代码实现一个热插拔的效果。简言之是为了使程序的扩展性好易于维护和升级。想要达到这样的效果我们需要使用接口和抽象类后面的具体设计中我们会提到这点。里氏代换原则Liskov Substitution Principle里氏代换原则是面向对象设计的基本原则之一。 里氏代换原则中说任何基类可以出现的地方子类一定可以出现。LSP 是继承复用的基石只有当派生类可以替换掉基类且软件单位的功能不受到影响时基类才能真正被复用而派生类也能够在基类的基础上增加新的行为。里氏代换原则是对开闭原则的补充。实现开闭原则的关键步骤就是抽象化而基类与子类的继承关系就是抽象化的具体实现所以里氏代换原则是对实现抽象化的具体步骤的规范。依赖倒转原则Dependence Inversion Principle这个原则是开闭原则的基础具体内容针对接口编程依赖于抽象而不依赖于具体。接口隔离原则Interface Segregation Principle使用多个隔离的接口比使用单个接口要好。它还有另外一个意思是降低类之间的耦合度。由此可见其实设计模式就是从大型软件架构出发、便于升级和维护的软件设计思想它强调降低依赖降低耦合。迪米特法则又称最少知道原则Demeter Principle一个实体应当尽量少地与其他实体之间发生相互作用使得系统功能模块相对独立。合成复用原则Composite Reuse Principle尽量使用合成/聚合的方式而不是使用继承。 1、单例设计模式 单例设计模式可以确保系统中某个类只有一个实例该类自行实例化并向整个系统提供这个实例的公共访问点除了该公共访问点不能通过其他途径访问该实例。 单例模式的优点 系统中只存在一个共用的实例对象无需频繁创建和销毁对象节约了系统资源提高系统的性能 可以严格控制客户怎么样以及何时访问单例对象。 单例模式的写法有好几种主要有三种懒汉式单例、饿汉式单例、登记式单例。 2、抽象工厂模式 抽象工厂模式主要用于创建相关对象的家族。当一个产品族中需要被设计在一起工作时通过抽象工厂模式能够保证客户端始终只使用同一个产品族中的对象并且通过隔离具体类的生成使得客户端不需要明确指定具体生成类所有的具体工厂都实现了抽象工厂中定义的公共接口因此只需要改变具体工厂的实例就可以在某种程度上改变整个软件系统的行为。 缺点添加新的行为时比较麻烦如果需要添加一个新产品族对象时需要更改接口及其下所有子类这必然会带来很大的麻烦。 3、策略模式 将类中经常改变或者可能改变的部分提取为作为一个抽象策略接口类然后在类中包含这个对象的实例这样类实例在运行时就可以随意调用实现了这个接口的类的行为。比如定义一系列的算法把每一个算法封装起来并且使它们可相互替换使得算法可独立于使用它的客户而变化这就是策略模式。 策略模式的优点可以动态改变对象的行为 策略模式的缺点会产生很多策略类并且策略模式的决定权在用户系统只是提供不同算法的实现所以客户端必须知道所有的策略类并自行决定使用哪一个策略类。 4.代理模式 Data AllArgsConstructor NoArgsConstructor public class JDKProxyFactory implements InvocationHandler {private Object object;Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {Object result method.invoke(object,args);return result;}public T T createProxy(){return (T)Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(),object.getClass().getInterfaces(),this);} } public class CglibProxyFactory implements MethodInterceptor {Overridepublic Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {Object result methodProxy.invokeSuper(o, objects);return result;}public T T createProxy(Class clzz) {Enhancer enhancer new Enhancer();enhancer.setSuperclass(clzz);enhancer.setCallback(this);return (T) enhancer.create();} } 5、观察者模式 观察者模式又称为发布-订阅模式定义了对象之间一对多依赖关系当目标对象(被观察者)的状态发生改变时它的所有依赖者(观察者)都会收到通知。 观察者模式优点 一个观察目标可以对应多个观察者而这些观察者之间没有相互联系所以能够根据需要增加和删除观察者使得系统更易于扩展符合开闭原则 并且观察者模式让目标对象和观察者松耦合虽然彼此不清楚对方的细节但依然可以交互目标对象只知道一个具体的观察者列表但并不认识任何一个具体的观察者它只知道他们都有一个共同的接口。 观察者模式缺点 如果存在很多个被观察者的话那么将需要花费一定时间通知所有的观察者如果观察者与被观察者之间存在循环依赖的话那么可能导致系统崩溃 观察者模式没有相应的机制让观察者知道被观察对象是怎么发生变化的而仅仅只是知道观察目标发生了变化。 6、适配器模式 适配器模式主要用于将一个类或者接口转化成客户端希望的格式使得原本不兼容的类可以在一起工作将目标类和适配者类解耦同时也符合“开闭原则”可以在不修改原代码的基础上增加新的适配器类将具体的实现封装在适配者类中对于客户端类来说是透明的而且提高了适配者的复用性但是缺点在于更换适配器的实现过程比较复杂。 适配器模式适合的场景 系统需要使用现有的类而这些类的接口不符合系统的接口。 使用第三方组件组件接口定义和自己定义的不同不希望修改自己的接口但是要使用第三方组件接口的功能。 6、命令模式 命令模式的本质是将请求封装成对象将发出命令与执行命令的责任分开命令的发送者和接收者完全解耦发送者只需知道如何发送命令不需要关心命令是如何实现的甚至是否执行成功都不需要理会。命令模式的关键在于引入了抽象命令接口发送者针对抽象命令接口编程只有实现了抽象命令接口的具体命令才能与接收者相关联。 命令模式的优势降低了系统的耦合度而且新命令可以很方便添加到系统中也容易设计一个组合命令。 命令模式的缺点会导致某些系统有过多的具体命令类因为针对每一个命令都需要设计一个具体命令类。 7、装饰器模式 装饰器模式可以动态给对象添加一些额外的职责从而实现功能的拓展在运行时选择不同的装饰器从而实现不同的行为比使用继承更加灵活通过对不同的装饰类进行排列组合创造出很多不同行为得到功能更为强大的对象符合“开闭原则”被装饰类与装饰类独立变化用户可以根据需要增加新的装饰类和被装饰类在使用时再对其进行组合原有代码无须改变。 8、外观模式 外观模式通过对客户端提供一个统一的接口用于访问子系统中的一群接口。使用外观模式有以下几点好处 更加易用使得子系统更加易用客户端不再需要了解子系统内部的实现也不需要跟众多子系统内部的模块进行交互只需要跟外观类交互就可以了 松散耦合将客户端与子系统解耦让子系统内部的模块能更容易扩展和维护。 更好的划分访问层次通过合理使用 Facade可以更好地划分访问的层次有些方法是对系统外的有些方法是系统内部使用的。把需要暴露给外部的功能集中到门面中这样既方便客户端使用也很好地隐藏了内部的细节。 但是如果外观模式对子系统类做太多的限制则减少了可变性和灵活性所以外观模式适用于为复杂子系统提供一个简单接口提高系统的易用性场景 以及 引入外观模式将子系统与客户端进行解耦提高子系统的独立性和可移植性。 9、模板方法模式 模板方法是基于继承实现的在抽象父类中声明一个模板方法并在模板方法中定义算法的执行步骤即算法骨架。在模板方法模式中可以将子类共性的部分放在父类中实现而特性的部分延迟到子类中实现只需将特性部分在父类中声明成抽象方法即可使得子类可以在不改变算法结构的情况下重新定义算法中的某些步骤不同的子类可以以不同的方式来实现这些逻辑。 模板方法模式的优点符合“开闭原则”也能够实现代码复用将不变的行为转移到父类去除子类中的重复代码。 模板方法模式的缺点是不同的实现都需要定义一个子类导致类的个数的增加使得系统更加庞大设计更加抽象。 10、状态模式 状态模式就是允许对象在内部状态发生改变时改变它的行为对象看起来就好像修改了它的类也就是说以状态为原子来改变它的行为而不是通过行为来改变状态。 当对象的行为取决于它的属性时我们称这些属性为状态那该对象就称为状态对象。对于状态对象而言它的行为依赖于它的状态比如要预订房间只有当该房间空闲时才能预订想入住该房间也只有当你预订了该房间或者该房间为空闲时。对于这样的一个对象当它的外部事件产生互动的时候其内部状态就会发生变化从而使得他的行为也随之发生变化。
http://www.tj-hxxt.cn/news/218662.html

相关文章:

  • 免费二级网站星辰wordpress主题
  • 赣州市开发区建设局网站山东省建设管理局网站
  • 枣强网站建设代理京东云免费建wordpress
  • 网站结构分析怎么写做一个公司的网站应做哪些准备工作
  • 电子商务网站例网站建设小程序湖南
  • 好的学习网站打广告个人站长和企业网站
  • 创建企业网站经过哪些步骤网站建设属于什么会计科目
  • 珠海找工作哪个网站好wordpress自适应 分页
  • 什么语言开发网站建立网站赚钱 优帮云
  • 怎样在门户网站做 推广门户网站建设管理工作的意见
  • phpcms 中英文网站同城版网站建设
  • 更新网站要怎么做呢广州高端模板网站
  • 免费建站微信wordpress设置了固定连接打不开
  • 住房城乡建设网站wordpress添加面包屑导航
  • 网站开发有哪些服务器个人网站可以做淘宝客
  • 做网站时随便弄上去的文章怎么删掉网页设计与制作轮播图教程
  • 网站地图怎么使用wordpress vs php的区别
  • 家居企业网站建设如何西安手机网站制作
  • 手机网站cms 开源太原关键词排名优化
  • 免费开发网站徐州百姓网发布信息
  • 深网网站安卓优化大师
  • 建设银行校招网站入口网站标题设计
  • 网站建设期末总结wordpress我的世界
  • 山东建设监理协会网站网站怎么做交易平台
  • dw网站建设步骤中山平面设计公司
  • 做ar网站做网站需要做哪些东西
  • 如何用易语言做网站软件工程的发展前景
  • 网络运营与网络营销是什么关系seo网站上线前分析
  • 自己做网站哪种好做自主网站
  • 安康电商网站建设php网站开发心得3500字