策略模式

IPsec实验-传输模式-Win7-Prekey

元气小坏坏 提交于 2020-02-25 23:56:09
前提: 两台win7主机,在一个局域网内,注意关闭防火墙,我之前没有关闭ping不通 新增加参考文章 http://support.ricoh.com/bb_v1oi/pub_e/oi_view/0001044/0001044740/view/op_guide/int/0331.htm 可以配置IKE、之前忽略了 打开本地安全策略 创建新的IP安全策略 下一步 名称随意 下一步 编辑添加策略属性 点击常规 点击设置、设置IKe 点击方法 下一步 下一步 根据需要,一般默认 添加IP涮选器,也是就是保护的流量范围 明称随意,点击添加 选择我的IP,就是本机就可以了 可以选任何,也可以选目标对方IP 选中刚才编写的筛选器策略,下一步 添加筛选器操作 选择自定义、选择设置 此处就是加密验证算法设置框,根据需要,一般全选上就好了 需要注意:对端设置参数需要与这个一致,否则建立不了sa 选中刚才编写的刷选器操作,下一步 身份验证方法-选择预共享 输入字符串,注意:这里的配置对端也必须一样。 分配策略 对端配置与刚才差不多,除了刚才提到的加密操作和认证需要配置一致。 来源: 51CTO 作者: Alyoyojie 链接: https://blog.51cto.com/antivirusjo/2471948

设计模式之策略模式

好久不见. 提交于 2020-02-24 13:50:47
  本篇来介绍一下设计模式之策略模式。   以下是本文目录大纲:   1.用策略模式改进一个设计实例。   2.策略模式的介绍和设计思路。   3.策略模式用到的设计原则。   4.设计实例的java实现。      转载请注明原文出处。   若有不正确的地方,欢迎大家的批评指正。 1.用策略模式改进一个设计的实例   现在要做一款模拟人生类游戏,游戏中有各种职业的人(教师、学生、工人、司机)。这些人都有着像姓名、性别等属性,行走、吃饭等相同的行为,当然他们有着不同的工作。我们这里为各种职业的人设计一个类来描述他们的特征,按照OO设计的思想,产生了如下的设计: 用一个抽象类来描述不同职业的人共用的特征,并将work方法在基类中设置为抽象方法,让继承People类的子类去实现不同的work方法,来区别不同职业人的工作。这时游戏中增加了乞丐的人物设定,这时这个设计就出现了问题:乞丐类也要去继承抽象类People,那必须去实现work方法,而乞丐并不存在职业。所以从这种设计我们可以体会到,当涉及系统的维护时,为了达到代码复用的目的而使用继承的方法并不是一个好的选择。   此时我们可以考虑使用接口将方法work()从基类People分离出来,让那些拥有工作的人去实现这个接口,从而满足设计的需求,于是产生了如下的设计:   这种设计模式虽然解决了乞丐的问题,但随着游戏规模的扩大

设计模式-策略模式

混江龙づ霸主 提交于 2020-02-22 13:02:36
摘要: 设计模式不是新技术而是一种解决特定环境下问题的策略,是各位前辈总结出的经验,不用设计模式能实现功能开发但使用设计模式写出的代码耦合性更低,扩展性更好。 在所有的文章中都会说项目中的if else 可以使用策略模式来解决,其实设计模式的书看了很多遍但一直不理解说使用策略模式替换if else 的判断,后来突然理解了,说的使用策略模式代替if else 其实不是完全不使用if else 而是说不用在项目的业务代码中if else 中在把处理具体策略的代码耦合在一起,而使用策略模式就是降低了这种耦合即业务代码和策略代码的耦合降低,如果后续有策略的增加只需要继续扩展而不用在改业务代码,这也就是设计模式中常说的低耦合高内聚、开闭原则(对扩展是开放的,对修改是关闭的)。 插曲: 蚂蚁金服面试笔试题请写出策略模式和模板方法模式,并说说他们的区别是什么? OK 开启策略模式学习的旅途…… 一、策略模式的定义 策略模式定义了一个拥有共同行为的算法族,每个算法都被封装起来,可以互相替换,独立于客户端而变化。策略模式本身的实现比较简单,但是结合单例模式+简单工厂模式+注解+反射,可以构造出近乎完善的策略模式,彻底的消除if-else。 二、策略模式使用场景 策略模式是oop中最著名的设计模式之一,是对方法行为的抽象,可以归类为行为设计模式,也是oop中interface经典的应用。 1

简单工厂模式和策略模式的差别

早过忘川 提交于 2020-02-21 07:05:51
直接上代码: 简单工厂模式: ------------------------------ 一个抽象类 -------------------------- abstract class AbsClass { //抽象方法:提供一些列的算法操作 public abstract void acceptCash(string org); } ------------------------------ 2个实现类 -------------------------- //继承自抽象类 class A :AbsClass { //详细方法:提供一些列的算法操作 public override double acceptCash(string org) { Console.WriterLine("A类方法"); } } //继承自抽象类 class B :AbsClass { //详细方法:提供一些列的算法操作 public override double acceptCash(string org) { Console.WriterLine("B类方法"); } } ------------------------------ 简单工厂类 -------------------------- //现金收取工厂 class CashFactory { //依据条件返回对应的对象

设计模式之策略模式

五迷三道 提交于 2020-02-20 04:44:16
1、定义   策略模式属于对象的行为模式。其用意是针对一组算法,将每一组算法封装到具有共同接口的独立子类中,从而可以使得他们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 2、策略模式的结构      策略模式涉及到三个角色: 环境(Context)角色:持有一个strategy的引用 抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现,此角色给出所有具体策略类所需的接口 具体策略(ConcreteStrategy)角色:实现了相关的算法或行为 3、源代码   抽象策略类 public interface TravelStrategy { //策略方法 public void travel(); }   具体策略类 public class AirPlaneStrategy implements TravelStrategy { @Override public void travel() { System.out.println("Travel by AirPlane!!"); } }    public class TrainStrategy implements TravelStrategy { @Override public void travel() { System.out.println("Travel by

策略模式

夙愿已清 提交于 2020-02-20 04:41:46
定义    策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户。   策略模式的重心不是如何实现算法,而是如何组织、调用这些算法,从而让程序结构更灵活,具有更好的维护性和扩展性。 角色   环境类(Context) : 用一个ConcreteStrategy对象来配置。维护一个对Strategy对象的引用。可定义一个接口来让Strategy访问它的数据。   抽象策略类(Strategy): 定义所有支持的算法的公共接口。 Context使用这个接口来调用某ConcreteStrategy定义的算法。   具体策略类(ConcreteStrategy): 以Strategy接口实现某具体算法。 使用场景   当存在以下情况时使用Strategy模式   1、多个类只区别在表现行为不同。 “策略”提供了一种用多个行为中的一个行为来配置一个类的方法。   2、需要使用一个算法的不同变体。   3、对客户(Duck)隐藏具体策略(算法)的实现细节,彼此完全独立。   4、一个类定义了多种行为 , 且这些行为在该类的操作中以多个条件语句的形式出现。将相关条件分支移入它们各自的Strategy类中以代替这些条件语句。 优缺点   对于Strategy模式来说,主要有如下优点:   1、 提供了一种替代继承的方法

设计模式之策略模式

帅比萌擦擦* 提交于 2020-02-17 23:26:08
定义 策略模式(Strategy Pattern):定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,也称为政策模式(Policy)。是一种对象行为型模式。 动机 完成一件事可以有多种不同的方式可以选择,每一种方式都是一种策略 作用 使得客户端可以根据外部条件选择不同策略来解决不同问题 1.策略模式仅仅封装算法(包括添加 & 删除),但策略模式并不决定在何时使用何种算法,算法的选择由客户端来 2.将算法的责任和本身进行解耦,对算法进行封装,将算法的责任和算法本身分割开,委派给不同的对象管理。 3.让算法和对象分开来,使得算法可以独立于使用它的客户而变化 实例 以我们每天上班打卡为例每个部门的考勤规则 首先有一个打卡接口 public interface Strategy { void ding(); } 然后选择不同部门打卡 public class StrategyA implements Strategy { @Override public void ding() { System.out.println("A ding 了一下!!!!!!!!!"); } } public class StrategyB implements Strategy { @Override public void ding() { System

Centos Bond设置实例

微笑、不失礼 提交于 2020-02-16 22:06:06
Centos Bond设置实例 DEVICE=bond0 ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=static IPADDR=172.16.23.131 NETMASK=255.255.255.0 USERCTL=no IPV6INIT=no GATEWAY=172.16.23.254 DEFROUTE=yes IPV4_FAILURE_FATAL=yes NAME="System bond0" PEERDNS=yes BONDING_OPTS="mode=6 miimon=100" DEVICE=eth0 ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=none USERCTL=no IPV6INIT=no IPV4_FAILURE_FATAL=yes NAME="System eth0" MASTER=bond0 SLAVE=yes DEVICE=eth1 ONBOOT=yes NM_CONTROLLED=no USERCTL=no PEERDNS=yes IPV6INIT=no MASTER=bond0 SLAVE=yes Note: 第一种模式:mod=0 ,即:(balance-rr) Round-robin policy(平衡抡循环策略) 特点:传输数据包顺序是依次传输(即:第1个包走eth0

7. 设计模式 策略模式

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-15 23:50:10
策略模式的定义与特点 策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。 策略模式的主要优点如下。 多重条件语句不易维护,而使用策略模式可以避免使用多重条件语句。 策略模式提供了一系列的可供重用的算法族,恰当使用继承可以把算法族的公共代码转移到父类里面,从而避免重复的代码。 策略模式可以提供相同行为的不同实现,客户可以根据不同时间或空间要求选择不同的。 策略模式提供了对开闭原则的完美支持,可以在不修改原代码的情况下,灵活增加新算法。 策略模式把算法的使用放到环境类中,而算法的实现移到具体策略类中,实现了二者的分离。 其主要缺点如下。 客户端必须理解所有策略算法的区别,以便适时选择恰当的算法类。 策略模式造成很多的策略类。 原文链接 http://www.javaxmw.com/info?intId=26 public class StrategyTest { public static void main(String[] args) { Context c= new Context(); Strategy s= new ConcreteStrategyA(); c

linux入门系列10--firewalld防火墙管理

我怕爱的太早我们不能终老 提交于 2020-02-15 10:03:43
上一篇文章学习了用户及文件相关权限,本篇继续学习防火墙技术。 防火墙作为公网与内网之间的保护屏障,对系统至关重要。防火墙又分为硬件防火墙和软件防火墙,主要功能都是依据设置的策略对穿越防火墙的流量进行过滤。本篇主要讲解Centos7系统自带的软件防火墙。 由于在初学阶段为了避免干扰很多时候我们都是直接关闭防火墙,但在生产环境这样做是很不安全的,因此我们需要掌握防火墙的相关配置方法。 一、Linux防火墙概述 Linux系统包含两个层面的防火墙,一种是基于TCP/IP的流量过滤工具,另外一种是TCP Wrappers服务。前者包括iptables、firewalld等防火墙,后者是能允许或禁止Linux系统提供服务的防火墙,在更高层面保护系统的安全。 在RHEL7系统中,firewalld取代了之前版本的iptables防火墙,成为默认的防火墙。二者有很大区别,iptables的防火墙策略是交由内核层面的netfilter网络过滤器来处理的,而firewalld则是交由内核层面的nftables包过滤框架来处理。 严格意义上说,iptables和firewalld都不是真正的防火墙,只是用来定义防火墙策略的防火墙管理工具而已,他们都是一种服务。 防火墙管理工具主要是为了方便运维管理人员对防火墙策略进行配置和管理,这类工具思路大同小异,只要掌握一个即可